Android WebView上的WebSQL数据库数量限制为1个,但Chrome本身不限制?

Android WebView上的WebSQL数据库数量限制为1个,但Chrome本身不限制?,android,cordova,android-webview,Android,Cordova,Android Webview,我目前正在使用Cordova开发一个应用程序,它使用window.openDatabase()访问SQL数据库 这在iOS上运行得很好,但在Android上,无论我何时尝试打开多个数据库,第二个请求都会抛出DOM异常18。请求的数据库大小似乎没有任何区别 var db = window.openDatabase("test",1,"test",500); // doesn't throw an Exception var db2 = window.openDatabase("test2"

我目前正在使用Cordova开发一个应用程序,它使用window.openDatabase()访问SQL数据库

这在iOS上运行得很好,但在Android上,无论我何时尝试打开多个数据库,第二个请求都会抛出DOM异常18。请求的数据库大小似乎没有任何区别

  var db = window.openDatabase("test",1,"test",500); // doesn't throw an Exception
  var db2 = window.openDatabase("test2",1,"test2",500); // throws an Exception
我一直在阅读Cordova的源代码,四处搜索,没有找到任何描述限制的内容,也许除了。它解释了每个应用程序只能有一个应用程序缓存。然而,WebSQL没有明确的限制

在Chrome中运行和作为WebView运行似乎有区别,因为在Chrome中运行时似乎没有限制,也没有引发异常


WebStorage类中描述的ApplicationCache限制在(Cordova)Webview上使用时是否也适用于WebSQL,或者该限制是由Cordova本身创建的?

事实证明,确实存在一个数据库的限制。这个问题的解决方案是不使用WebView WebSQL存储,而是使用SQLite插件。 我使用的插件是

可以使用命令行界面在cordova中轻松安装:

cordova plugin add https://github.com/lite4cordova/Cordova-SQLitePlugin
这不会替换
window.openDatabase
,但会将自身添加为
navigator.sqlitePlugin.openDatabase
。API是相同的

这消除了每个WebView只有一个数据库的限制以及每个数据库大小的限制。

Phonegap开发者聊天: