克服安全性错误:Mobile Chrome for iOS上PockDB中的DOM异常18

克服安全性错误:Mobile Chrome for iOS上PockDB中的DOM异常18,ios,iphone,google-chrome,web-sql,pouchdb,Ios,Iphone,Google Chrome,Web Sql,Pouchdb,我正在一个针对iOS上Chrome的web应用程序上使用PockDB 3.2.1。以下错误也出现在DB3.2.0中 当尝试在iOS上的Chrome上创建与本地数据库的连接时,PockDB使用该浏览器的WebSQL数据库。但是,在iPhone 5和iPhone 5s上运行应用程序时,这会间歇性失败,并出现SecurityError:DOM异常18。我还不能在我的iPad5上重现这个错误 我正在创建一个新的数据库,如下所示: var localDBName = "dbd8008497c6f368d"

我正在一个针对iOS上Chrome的web应用程序上使用PockDB 3.2.1。以下错误也出现在DB3.2.0中

当尝试在iOS上的Chrome上创建与本地数据库的连接时,PockDB使用该浏览器的WebSQL数据库。但是,在iPhone 5和iPhone 5s上运行应用程序时,这会间歇性失败,并出现SecurityError:DOM异常18。我还不能在我的iPad5上重现这个错误

我正在创建一个新的数据库,如下所示:

var localDBName = "dbd8008497c6f368d";
self.localPouch = new PouchDB(localDBName, {size: 50});
我还尝试将大小设置为49、1和0,而根本不设置大小

以下是来自BugSnag的stacktrace:

[native code]:4232 openDatabase
http://192.168.1.144:8000/app/bower_components/pouchdb/dist/pouchdb.js:4232:48 openDB
http://192.168.1.144:8000/app/bower_components/pouchdb/dist/pouchdb.js:4275:18 WebSqlPouch
http://192.168.1.144:8000/app/bower_components/pouchdb/dist/pouchdb.js:5655:40
[native code]:0 Promise
http://192.168.1.144:8000/app/bower_components/pouchdb/dist/pouchdb.js:5570:28 PouchDB
下面是backDB.js第4232行附近的代码:

var cachedDatabases = {};

var openDBFunction = (typeof navigator !== 'undefined' &&
      navigator.sqlitePlugin &&
      navigator.sqlitePlugin.openDatabase) ?
    navigator.sqlitePlugin.openDatabase.bind(navigator.sqlitePlugin) :
      (typeof sqlitePlugin !== 'undefined' && sqlitePlugin.openDatabase) ?
    sqlitePlugin.openDatabase.bind(sqlitePlugin) :
      (typeof openDatabase !== 'undefined') ?
    openDatabase :
    null;

function openDB(name, version, desc, size) {
  var db = cachedDatabases[name];
  if (!db) {
    db = cachedDatabases[name] = openDBFunction(name, version, desc, size);
  }
  return db;
}

刷新浏览器页面并不能解决此问题。关闭浏览器选项卡并重新打开页面也不起作用。解决这个问题的唯一方法是强制退出浏览器并重新启动应用程序。但是,对于我们的用户来说,这不是一个可接受的解决方法。

在KitKat之前的Android设备上,您的错误消息似乎是一个问题

不确定iOS上的Chromo是否存在相同的问题,但值得在此查看常见错误以了解更多信息:


这个问题似乎在iOS 8.1.3中消失了。这在iPhone 6和iPhone 5上都得到了验证。

谢谢,但我的问题特别是Chrome/iOS问题。事实证明,这个问题不是针对PockDB的。这是WebKit本身的一个bug: