@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();
});
}