У нас есть мобильный проект PhoneGap, который использует Dojo. На данной HTML-странице, например. index.html, мы имели бы тег JavaScript, похожее на это:Как загрузочный Dojo из мобильного локального хранилища
<script>
require(["path/to/myApp", "dojo/domReady!"], function(MyApp) {
new MyApp().startup();
});
</script>
путь/к/myApp.js затем будет класс, который выполняет необходимые функции, например:
define(["dojo/_base/declare",
"dojox/mobile/deviceTheme",
"dojox/mobile/compat"],
function(declare) {
return declare(null, {
startup: function() {
// create and display views etc.
}
});
});
Что мы пытаюсь сделать, это реализовать средство автоматического обновления по следующим направлениям:
- при запуске использовать AJAX для проверки с сервером, если версия приложения клиент является текущей.
- Если клиент устарел, отправьте новый JavaScript (и/или HTML, CSS) клиенту по мере необходимости.
- Клиент хранит JavaScript в локальном хранилище на устройстве.
Учитывая эту схему, при запуске клиент будет считывать JavaScript из локального хранилища и выполнять этот код, заменяя путь/на/myApp.js. То, с чем я борюсь, связано с тем, что Dojo «требует» функциональности AMD. Я думаю, мне все равно нужно будет использовать загрузчик Dojo для разрешения зависимостей и т. Д.
Из того, что я вижу, загрузчик Dojo использует «require» для поиска узла DOM, в который затем добавляется тег «script» , и, наконец, он устанавливает атрибут «src» тега сценария «path/to/myApp.js» (в этом примере). Мне нужен способ изменить это поведение, чтобы вместо этого запустить обновленный JavaScript, который теперь извлекается из локального хранилища на устройстве. Это позволит нам автоматически обновлять наше приложение с сервера, не требуя повторного развертывания в магазине приложений для небольших вещей, таких как исправления ошибок.
См. Http://stackoverflow.com/questions/12709673/application-cache-in-html5-doesnt-work-in-android-phonegap-application/12710632#12710632 – Philippe
Возможно, я неправильно понимаю, но я не думаю, что это это то, что мне нужно. Я пытаюсь загрузить Dojo (клиентская сторона, PhoneGap, а не Java на Android) из JavaScript, который хранится на устройстве через постоянное хранилище. – 4EverLive
Я думаю, вам нужно предоставить более подробную информацию о настройке вашего приложения ... – Philippe