0

我正在尝试从 Android 4.1.1 下的 Web 视图中使用 HTML5 SQL 存储。

在浏览器中(在桌面或安卓设备上)我的代码工作正常,但是当我尝试将它执行到 Android 的 WebView 中时,我收到以下错误:未捕获的 ReferenceError:openDatabase 未定义

我读了很多关于这个主题的文章,但不清楚 Android 是否支持这个功能。似乎它在 Android v2.x 上得到了很好的支持,但由于限制,从 v4.x 开始不再支持。

你知道这方面的任何信息吗?

我的如下,初始化webview:

webViewMenu = (WebView) findViewById(R.id.webViewMenu);
// Add javascripInterface to the webviews
webViewMenu.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");
// Open webview with Chrome
webViewMenu.setWebChromeClient(new WebChromeClient(){
    @Override
public void onExceededDatabaseQuota(String url, String
databaseIdentifier, long currentQuota, long estimatedSize,
long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(estimatedSize * 2); // try to keep quota size as big as possible else database will not get created in HTML 5 app
}
});
WebSettings settingsMenu = webViewMenu.getSettings();
settingsMenu.setJavaScriptEnabled(true);
settingsMenu.setDatabaseEnabled(true);
settingsMenu.setDomStorageEnabled(true);
settingsMenu.setJavaScriptCanOpenWindowsAutomatically(true);
String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settingsMenu.setDatabasePath(databasePath);

从 JS 打开数据库:

dbModels = openDatabase ("models", "1.0", "Demo Database", 2*1024*1024);

谢谢你的帮助

4

0 回答 0