@Kinjal 的回答确实帮助我走上了正轨,但我不得不解决很多时间问题。
我使用 Cordova 设备就绪事件来读取我的应用程序的数据文件,一些驱动接口构建的 JSON 数据包,默认情况下加载到 www 文件夹中,但最终可能会从服务器下载,以升级应用程序数据库。
我发现了很多问题,因为在路由开始之前应用程序数据结构没有足够的时间来初始化。
我总结了这个解决方案:首先初始化jQuery,在jQuery初始化结束时调用Cordova的事件处理程序,在Cordova初始化的最后一个处理结束时调用应用程序启动例程。
所有这些噩梦都开始了,因为我需要一种方法来读取 Hogan.js 的模板文件,并且无法使用文件协议和简单的 XHR 来读取它们。
像这样:
$(document).ready(function () {
...
// are we running in native app or in a browser?
window.isphone = false;
if (document.URL.indexOf('http://') === -1 && document.URL.indexOf('https://') === -1) {
window.isphone = true;
}
if (window.isphone) {
document.addEventListener('deviceready', onDeviceReady, false);
} else {
onDeviceReady();
}
});
function onDeviceReady() {
function readFromFile(fileName, cb) {
// see (https://www.neontribe.co.uk/cordova-file-plugin-examples/)
}
...
readFromFile(cordova.file.applicationDirectory + 'www/views/tappa.html', function (data) {
app.views.lastview = data;
app.start();
});
}