我有一个基于cordova的应用程序,可在Android,iOS和Windows Phone上运行。我的应用程序的起点是index.html页面,它不仅会在应用程序启动时加载,而且可以从应用程序内部重定向到它。
我想执行一些代码,当且仅当应用程序刚刚启动时(所以当index.html第一次显示时),而不是重定向到它。我试图使用在会话结束时过期的cookie,但是cordova不能与cookie一起使用。
另外我不想使用会话存储,因为一些旧的Androids(以及Internet Explorer)无法处理这个问题。
我用过的cordova版本是4.0.0
修改
我忘了提到它不是单页应用程序,但我使用了多个可以访问的页面,因此deviceready-event不起作用,因为每次访问index.html时都会触发它页
答案 0 :(得分:1)
尝试这样的smth:
function documentReady() {
document.addEventListener("deviceready", handleDeviceReady, false);
}
function handleDeviceReady(event) {
//cordova api is ready for use
if (!localStorage.getItem('alreadyStarted')) {
// App just started!
localStorage.setItem('alreadyStarted', true);
}
}
UPD。您还需要在首次启动时设置标记(即会话中的alreadyStarted = true
或LocalStorage)并稍后在handleDeviceReady()
中进行检查。
答案 1 :(得分:0)
在第一次运行时写入数据库。每次应用启动时,请检查数据库以查看该字符串是否存在。如果是这样,请忽略。否则,创建并编写。