我正在尝试使用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浏览器或任何其他浏览器上尝试时不会出现此错误)
答案 0 :(得分:0)
这似乎是webview的一个bug。我实际上是想在webview中打开3个不同的页面而我正在丢失localStorage数据。我将此活动拆分为3个活动,每个活动只打开一个页面。问题就消失了。