html5本地存储未保留在下一次启动的Windows Phone 8应用程序中

时间:2013-08-25 16:54:32

标签: html5 windows-phone-8 cordova

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

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

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

在HTML5页面代码下方给出 [我尝试了在localstorage中存储值的两种方式:localStorage.key = value& localStorage.setItem(键,值)。第二次,我评论了save命令并替换为read命令。那段时间我把结果称为“null”&分别为“未定义”

请告诉我如何永久保留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>

2 个答案:

答案 0 :(得分:1)

这不起作用

alert(localStorage.firstname);

根据您需要使用的PhoneGap API Documentation

alert(localStorage.getItem("firstname"))

它也不适用于Windows Phone 7应用程序。

答案 1 :(得分:0)

您好我们也面临同样的问题,我们在这里使用会话

作为

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

here is the link