移动设备上线时,LocalStorage值消失

时间:2013-07-29 15:25:45

标签: android html5 webview local-storage

我正在尝试使用android webview构建一个简单的localStorage示例。当我关闭应用程序时,我遇到了一些麻烦。每次我启动应用程序时,存储在localStorage中的值都会消失。我用Google搜索,无法找到合适的解决方案。在这里,我把我的HTML,Java,Manifest代码示例。任何帮助将不胜感激。

HTML:

<!DOCTYPE html>
<html>
<head>
<script>
function clickCounter()
{
if(typeof(Storage)!=="undefined")
  {
  if (localStorage.clickcount)
    {
    localStorage.clickcount=Number(localStorage.clickcount)+1;
    }
  else
    {
    localStorage.clickcount=1;
    }
  document.getElementById("result").innerHTML="You have clicked the button " + localStorage.clickcount + " time(s).";
  }
else
  {
  document.getElementById("result").innerHTML="Sorry, your browser does not support web storage...";
  }
}
</script>
</head>
<body>
<p><button onclick="clickCounter()" type="button">Click me!</button></p>
<div id="result"></div>
<p>Click the button to see the counter increase.</p>
<p>Close the browser tab (or window), and try again, and the counter will continue to count (is not reset).</p>
</body>
</html>

JAVA:

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setDatabasePath(this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath());
webView.loadUrl("http://www.example.com/sample.html");  
setContentView(webView);

清单:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

权限行位于标记下但位于标记

之外

这是场景: - 关闭移动设备的互联网连接 - 启动应用程序 - 打开webview中的页面 - 按几次按钮 - 关闭应用程序(在任务管理器中关闭它) - 打开移动设备的互联网连接 - 启动应用程序 - 打开页面 -tap按钮多次,从开头算起

您可以在尝试时创建不同的方案。主要的问题是如何将webView设置为正确使用localStorage?我对webview缺少一些东西。(在Chrome浏览器或任何其他浏览器上尝试时不会出现此错误)

1 个答案:

答案 0 :(得分:0)

这似乎是webview的一个bug。我实际上是想在webview中打开3个不同的页面而我正在丢失localStorage数据。我将此活动拆分为3个活动,每个活动只打开一个页面。问题就消失了。