在webView和CordovaWebView android上共享localStorage

时间:2014-09-01 13:59:29

标签: android cordova webview local-storage ionic-framework

我正在尝试在webView和CordovaWebView之间共享活动中的数据。 CordovaWebView当然使用webView,这就是为什么我不明白为什么在我的phoneGap应用程序中存储在localStorage中的数据在简单的webView中不可见,它从主应用程序的同一位置加载html页面。我已经调查过 CordovaWebView 存储的数据存储在文件 / app_webview / Local Storage / file__0.localstorage 中,并且数据存储在创建的实例中webView 类存储在文件 / app_webview / Local Storage / __ 0.localstorage 中,这就是我无法访问数据的原因。 我正在加载将localStorage中的数据存储到webView的脚本,如下所示:

webView.loadUrl("file:///android_asset/www/script.html");

CordovaWebView中的主页以相同的方式加载:

void loadUrlNow(String url) {
    if (LOG.isLoggable(LOG.DEBUG) && !url.startsWith("javascript:")) {
        LOG.d(TAG, ">>> loadUrlNow()");
    }
    if (url.startsWith("file://") || url.startsWith("javascript:") || Config.isUrlWhiteListed(url)) {
        super.loadUrl(url);
    }
}

其中url是

file:///android_asset/www/index.html

那么为什么CordovaWebView localStorage保存在文件

/app_webview/Local Storage/file__0.localstorage

在webview中的文件

/app_webview/Local Storage/__0.localstorage

1 个答案:

答案 0 :(得分:1)

不幸的是,Android上localStorage的奇怪行为是故意的。您可以使用像这样的库来解决本机方面的问题(我自己也没试过):

或者,您可以在打开InAppBrowser时使用JavaScript填充localStorage,在关闭它时使用readStorage读取localStorage。

这适用于少量数据。虽然调试大量可能会很烦人。