Kev*_*vin 5 javascript android
我创建了一个原生Android应用程序,它基本上托管了一个webView控件.然后,该webView用于加载从JavaScript调用window.openDatabase的页面.我可以通过验证window.openDatabase来成功确认API是否存在.
在托管的webView控件中调用时,调用此方法将返回null.在Android浏览器中调用相同的方法将返回数据库的实例.
有谁知道webView控件上的清单或设置中的渗透需要设置为访问数据库?这在本机应用程序中是否可行.
小智 8
要使用数据库API,您必须将WebView配置为接受HTML5数据库调用:
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
...
settings.setDatabaseEnabled(true);
settings.setDatabasePath("/data/data/your.package.name/database_name");
Run Code Online (Sandbox Code Playgroud)
如果要控制存储配额,还可以覆盖WebChromeClient的onExceededDatabaseQuota方法:
public void onExceededDatabaseQuota(String url, String
databaseIdentifier, long currentQuota, long estimatedSize, long
totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(204801);
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案对我有用:
WebSettings settings = myWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
String databasePath = this.getApplicationContext().getDir("database",
Context.MODE_PRIVATE).getPath();
settings.setDatabasePath(databasePath);
Run Code Online (Sandbox Code Playgroud)
也可以在这里找到
| 归档时间: |
|
| 查看次数: |
8365 次 |
| 最近记录: |