在Android webview上使用本地存储

MrM*_*MrM 3 android webview local-storage android-webview

我正在尝试Android代码:我想使用HTML 5本地存储存储一个值.在本练习中,我使用的页面非常简单:http: //www.w3schools.com/html5/tryit.asp?filename = tryhtml5_webstorage_local_clickcount

我的清单确实允许我上网,它是7的min-sdk.

这是我的java代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webview = (WebView) findViewById(R.id.webview);
    WebView webView = (WebView) findViewById(R.id.webview);
    webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
    WebSettings webSettings = webview.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDatabasePath("");
    webSettings.setDomStorageEnabled(true);
    webview.setWebChromeClient(new WebChromeClient());
    webview.loadUrl("http://www.xyz.com/test.html");
    ///xyz.com/test.html is a sample  :)
    webview.setWebViewClient(new HelloWebViewClient());
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我关闭应用程序时,本地存储的值不再存在.我可以使用默认浏览器浏览到同一页面,即使关闭模拟器后该值也是持久的,这正是我正在寻找的行为.

这可能是一件非常简单的事......任何想法?

Rob*_*kic 7

看来空字符串DatabasePath就是问题所在.我尝试了类似的代码并使用空字符串路径,在应用程序退出后该值不会保留.如果我定义了特定的数据库路径,则该值将按预期保持不变.

尝试:

webSettings.setDatabasePath("/data/data/"+this.getPackageName()+"/databases/");
Run Code Online (Sandbox Code Playgroud)