我正在尝试在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
答案 0 :(得分:1)
不幸的是,Android上localStorage的奇怪行为是故意的。您可以使用像这样的库来解决本机方面的问题(我自己也没试过):
或者,您可以在打开InAppBrowser时使用JavaScript填充localStorage,在关闭它时使用readStorage读取localStorage。
这适用于少量数据。虽然调试大量可能会很烦人。