我正在开发一个移动应用程序,它应该连接到 Web 服务器。该应用程序是用 jQM 编写的,并且只需在 android web 视图中导入。问题是我想使用 jStorage 插件将特定的个人信息保存在本地存储中,然后将其发送到服务器。当我在我的计算机上测试它时,这非常有效,但是当我在带有 web 视图的设备上尝试它时,它不起作用 - 它发送 null。所以我想知道是否可以在导入的 Web 视图上使用本地存储,或者我应该寻找其他解决方案。我没有使用 cookie,因为我在使用库时遇到了问题,然后它在浏览器的本地存储中运行良好。
这是我的活动代码:
private WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
mWebView = new WebView(this);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
mWebView.loadUrl("file:///android_asset/accents.html");
mWebView.setWebChromeClient(new WebChromeClient() {
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(5 * 1024 * 1024);
}
});
this.setContentView(mWebView);
}
这是js示例:
$.jStorage.set("access_token", data.access_token);
$.jStorage.set("refresh_token", data.refresh_token);
$.jStorage.set("logged", true);
在那之后
access_token = $.jStorage.get("access_token");
refresh_token = $.jStorage.get("refresh_token");
将两个值都设置为null