【问题标题】:Overcoming SecurityError: DOM Exception 18 in PouchDB on Mobile Chrome for iOS克服 SecurityError: DOM Exception 18 in PouchDB on Mobile Chrome for iOS
【发布时间】:2015-01-12 15:31:59
【问题描述】:

我在针对 iOS 上的 Chrome 的 Web 应用程序上使用 PouchDB 3.2.1。 PouchDB 3.2.0 中也出现以下错误。

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

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

var localDBName = "dbd8008497c6f368d";
self.localPouch = new PouchDB(localDBName, {size: 50});

我也尝试将大小设置为 49、1 和 0,但根本不设置大小。

这是来自 BugSnag 的堆栈跟踪:

[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

这是 pouchdb.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;
}

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

【问题讨论】:

    标签: ios iphone google-chrome web-sql pouchdb


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    您的错误消息似乎在支持 KitKat 之前的 Android 设备上存在问题。

    不确定 iOS 上的 Chromo 是否有同样的问题,但值得在此处查看 pouchdb 常见错误以获取更多信息:

    http://pouchdb.com/errors.html#android_pre_kitkat

    【讨论】:

    • 谢谢,但我的问题是 Chrome / iOS 问题。
    猜你喜欢
    • 1970-01-01
    • 2018-04-19
    • 2015-10-09
    • 2014-09-14
    • 2014-07-03
    • 2014-05-12
    • 1970-01-01
    • 2015-02-19
    • 2023-04-09
    相关资源
    最近更新 更多