我正在使用Cordova 2.2.0和Eclipse创建一个使用HTML5 localStorage的Android应用程序。我注意到一个奇怪的问题,我以前在这个网站上看不到。该应用程序包含2个页面,每个页面都有一个按钮。当按下其中一个按钮时,它应该将本地存储的变量(window.localStorage.count)增加+1并提醒我其新值。
例如,当我第一次打开应用程序并按第1页上的按钮两次时,变量应该等于2.然后当我导航到第二页并再次按下按钮时,变量等于4.所以在我的设备上从Eclipse运行它后第一次使用应用程序时,这是正常工作,但是当我再次返回第一页时会出现问题。如果我按下按钮一次(在第1页上),变量现在是3(仅从其页面上设置的值增加并忽略第2页),如果我再次导航到第二页并按一下按钮我得到一个值5,好像忽略了另一个页面1上发生的事情。似乎变量在每个页面上单独存储,并且作为两个单独的变量,尽管两个页面都链接到同一个javascript文件。
即使我退出应用程序以及我测试过的Chrome和Safari等网络浏览器,这在iOS中使用PhoneGap也能很好地运行。谁能描述为什么会出现这种情况?我试过删除"窗口。"来自localStorage部分,但这没有产生影响。
我使用的是Android版4.1.2的三星Galaxy s3 mini。我也在应用程序中使用常规jQuery。
Javascript文件
window.localStorage.count;
if(typeof window.localStorage.count === "undefined") {window.localStorage.count = 0)}
function incrementCount() {
window.localStorage.count++;
alert(window.localStorage.count);
}
Page1 HTML
<button onClick="incrementCount()">Add to Count</button>
<button onClick="location.href='page2.html'">Go to Page 2</button>
Page2 HTML
<button onClick="incrementCount()">Add to Count</button>
如果它有帮助我只在AndroidManifest.xml中使用一个权限
<uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
我再一次无法解释为什么会这样。它似乎是我第一次测试应用程序,但后来导航回第一页后没有。谢谢你的帮助。