【发布时间】:2014-07-18 18:15:58
【问题描述】:
我在运行 JQM 的 android 设备上运行 localstorage 时遇到了一个奇怪的问题。 我应该提一下,当在网络浏览器上查看时,我的代码工作得非常好,但是在我的 android 上,它不会从 localStorage.getItem('visittime') 接收变量。
脚本基本上是我自己的小弹出窗口,每分钟向用户显示一次。 我使用当前时间戳将变量存储在本地存储中。如果变量存在,它将与现在的时间戳进行比较。如果超过一分钟,pop 将再次显示。
$( document ).on( "pagecreate", function() {
var now = new Date().getTime(),
storagedate = localStorage.getItem('visittime');
if(storagedate){
var diff = now - storagedate;
if(diff > 60000){
localStorage.removeItem('visited');
localStorage.removeItem('visittime');
}
}
var yetVisited = localStorage.getItem('visited');
if (!yetVisited) {
$(".welcomewindow").delay(1500).fadeIn("300", function(){
$(".welcome").css({"margin-left":leftPos,"width":welcomeSetwidth}).fadeIn("300") ;
});
$(".welcomeClose").on("click",function(e){
$(".welcomeshield").fadeOut("300");
$(".welcome").fadeOut("300");
localStorage.setItem('visited','yes');
localStorage.setItem('visittime', new Date().getTime());
});
}
}
我看到人们遇到了一些类似的问题,他们通过更改要在 JQM 加载之前或在 mobileinit 上调用的脚本的位置来解决它。我一直无法弄清楚这一点。
【问题讨论】:
-
什么是 on("pagecreate") ?这在android浏览器中有效吗? (我没听说过)
-
pagecreate: "在 DOM 中(通过 ajax 或其他方式)创建页面并且所有小部件都有机会增强包含的标记之后触发。" (api.jquerymobile.com/pagecreate)
-
你的Android APP里有没有这个(mWebView.getSettings().setDomStorageEnabled(true);) ?? - - 你可以在这里阅读更多。 -- mytechead.wordpress.com/tag/setdomstorageenabled
标签: javascript android jquery jquery-mobile local-storage