我使用AngularJs开发了一个混合应用程序,在iOS上运行良好。 但是现在我无法在Android上运行,我正在使用WebSQL并且正在收到错误:
openDatabase not defined.
将此添加到webview设置时失败了:
webSettings.setDatabaseEnabled(true);
然后出现了这个问题:
02-24 03:08:10.687: E/Web Console(31421): Uncaught Error: SECURITY_ERR: DOM Exception 18
在我使用openDatabase的同一行。
我不考虑更改我的数据库。
答案 0 :(得分:0)
这可能是一个安全错误,因为它违反了同源政策?设置webSettings.setAllowFileAccessFromFileURLs(true)
有助于解决问题吗?
答案 1 :(得分:0)
您尝试授予数据库的配额是多少?如果它超过默认值(或者您的数据库后来增长到您所请求的更多)并且您没有实现WebChromeClient.onExceededDatabaseQuota
那么您将收到此错误。
另外,请确保将数据库文件的路径设置为您的应用有WebSettings.setDatabasePath
[2]
[1] http://developer.android.com/reference/android/webkit/WebChromeClient.html#onExceededDatabaseQuota(java.lang.String,java.lang.String,long,long,long,android.webkit.WebStorage.QuotaUpdater)