本文介绍了Android的WebView中localStorage的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图得到一个HTML5的localStorage例如一个Android的WebView(WebKit的,ChromeClient)内工作。但我有没有运气。一切从手机浏览器的工作方式不是从web视图。

活动:

 公共类BrowserActivity延伸活动{
    @覆盖
    公众最终无效的onCreate(最终捆绑savedInstanceState){
        super.onCreate(savedInstanceState);        的setContentView(R.layout.main);        的WebView浏览器=(的WebView)findViewById(R.id.webView);        browser.setHapticFeedbackEnabled(真);
        browser.getSettings()setJavaScriptEnabled(真)。
        。browser.getSettings()setSavePassword(假);        browser.getSettings()setDatabaseEnabled(真)。
        browser.getSettings()setDomStorageEnabled(真)。
        browser.getSettings()setDatabasePath(/数据/数据​​/+ browser.getContext()getPackageName()+/数据库/)。        browser.loadUrl(http://my.app.com:10099);
    }
}

Manifiest:

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
          包=RestrictedBrowser
          安卓版code =1
          机器人:=的versionName1.0>
    <采用-SDK安卓的minSdkVersion =16/>
    <应用机器人:标签=@字符串/ APP_NAME>
        <活动机器人:名字=RestrictedBrowser.BrowserActivity
                  机器人:标签=@字符串/ APP_NAME
                  机器人:主题=@安卓风格/ Theme.Black.NoTitleBar
                  机器人:screenOrientation =肖像>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>
                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
    < /用途>
    <使用许可权的android:NAME =android.permission.INTERNET对>< /使用许可权>
    <使用许可权的android:NAME =android.permission.WRITE_EXTERNAL_STORAG​​E>< /使用许可权>
    <使用许可权的android:NAME =android.permission.READ_EXTERNAL_STORAG​​E>< /使用许可权>
< /清单>

错误

解决方案

You must create the database directory before you can use it.

Use the following code

String databasePath = browser.getContext().getDir("databases",
                                   Context.MODE_PRIVATE).getPath();
browser.getSettings().setDatabasePath(databasePath);

这篇关于Android的WebView中localStorage的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-29 21:33