2

一年前,我们为 Windows 7 操作系统开发了一个基于 Phonegap 的混合应用程序,并在商店中提供。Windows 8 手机发布后,我们在 Windows Phone 8 中试用了该应用程序。该应用程序在这个新操作系统中运行良好,因为它基于 Web,除了 HTML5 本地存储。

在该应用程序中,我们在第一次启动应用程序时将用户登录详细信息存储在浏览器本地存储中,下次网页端业务逻辑将访问它并用于后台登录。这在 Windows 7 手机中运行良好。但是在 Windows 8 手机(诺基亚 Lumia 620、820)中,每次关闭或强制停止应用程序时都会删除此本地存储(请注意:在会话中,存储会保留。它仅在下次启动时可用)。

为了确定问题的原因,我在 Windows phone 8 sdk 中创建了一个简单的 html5 应用程序,并检查了本地存储保存/读取选项。我可以保存值并在会话中读取它,但是当退出并再次打开时,这些值就消失了。然而,相同的 html5 页面在 IE10 中工作正常,在相同的 Windows 8 手机(ie)值被存储,并且可以在我下次访问 URL 时访问。

在下面给出示例 HTML5 页面代码[我尝试了两种在 localstorage 中存储值的方法:localStorage.key = value & localStorage.setItem(key,value)。第二次,我注释了保存命令并替换为读取命令。那一次我得到的结果分别为“null”和“undefined”]

请让我知道如何将浏览器本地存储永久保存在 Windows 8 手机中。这是客户的要求,感谢您的快速支持。

提前致谢。

本地存储支持检查 - HTML 5 页面代码

<!DOCTYPE html>
<html>
 <body>
  <div id="fname"></div>
  <div id="lname"></div>
  <script>
    var outputElem1 = document.getElementById("fname");
    var outputElem2 = document.getElementById("lname");
    if( typeof( window.localStorage) !== "undefined" )
    {
   localStorage.firstname = "John";
   outputElem1.innerHTML="First name: " + localStorage.firstname;

   localStorage.setItem( 'lastname', "Smith" );
   outputElem2.innerHTML="Last name: " + localStorage.getItem('lastname');
    }
    else
    {
   outputElem1.innerHTML="Sorry, your device does not support web storage...";
    }
  </script>  
 </body>
</html>
4

2 回答 2

1

这行不通

alert(localStorage.firstname);

根据您需要使用的PhoneGap API Documentation

alert(localStorage.getItem("firstname"))

它也不会在您的 Windows Phone 7 应用程序中工作。

于 2013-08-25T17:12:35.653 回答
0

嗨我们也遇到了同样的问题,我们在这里使用了会话

作为

sessionStorage.setItem(yourkey, yourvalue);
var item = sessionStorage.getItem(yourkey);

链接在这里

于 2013-09-06T10:54:58.123 回答