首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享localStorage跨webView和CordovaWebView安卓

共享localStorage跨webView和CordovaWebView安卓
EN

Stack Overflow用户
提问于 2014-09-01 13:59:29
回答 1查看 2.2K关注 0票数 4

我试图在webView和CordovaWebView之间共享活动中的数据。当然,CordovaWebView使用webView,这就是为什么我不理解为什么存储在webView应用程序中的localStorage中的数据在简单的webView中是不可见的,后者从与主应用程序相同的位置加载html页面。我已经研究过,CordovaWebView存储的数据存储在文件/app_webview/0.localstorage/ file __0中。由webView类创建的实例存储的数据存储在文件/app_webview/0.localstorage/_0中,这就是我无法访问数据的原因。我将在localStorage中存储数据的脚本加载到webView中,如下所示:

代码语言:javascript
复制
webView.loadUrl("file:///android_asset/www/script.html");

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

代码语言:javascript
复制
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在哪里

代码语言:javascript
复制
file:///android_asset/www/index.html

那么为什么在CordovaWebView中localStorage被保存在文件中呢?

代码语言:javascript
复制
/app_webview/Local Storage/file__0.localstorage

以及在文件中的webview中

代码语言:javascript
复制
/app_webview/Local Storage/__0.localstorage
EN

回答 1

Stack Overflow用户

发布于 2015-02-18 11:36:46

不幸的是,localStorage在安卓上的怪异行为是故意的。您可以通过使用类似于此的库来解决本机方面的问题(不要自己尝试):

或者,您可以在打开JavaScript时使用executeScript参数填充InAppBrowser,并在关闭InAppBrowser时读取localStorage。

  • inappbrowser.md.html#executeScript

对于少量的数据来说,这很好。但是,对于大量的调试来说,这是非常烦人的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25607481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档