Dexie/IndexedDB mobile Private Browsing Error - Uh oh: Missing API Error: IndexedDB API Not Available

Dexie/IndexedDB mobile Private Browsing Error - Uh oh: Missing API Error: IndexedDB API Not Available

我在 iOS Safari 和 iOS Chrome 上尝试加载我的网络应用程序时收到错误消息。在桌面上进行无痕浏览时没有错误。

我添加了以下内容:

if (window.indexedDB) {
  console.log('IDB supported');
  var db = new Dexie('Stir');
  //Dexie stuff
}

使用 Safari 开发工具,正在记录 "IDB supported" - 但 error/alert 弹出并阻碍操作。

我将所有 dexie 代码都封装在 if (window.indexedDB) 中 - 以确保只有 运行 如果 IDB 在浏览器中可用。

我的完整存储库可在 https://github.com/georgecook92/Stir 获得。如果查看这段代码,对 dexie 的调用在动作 index.js 和 React 的主要 index.js 中。

Dexie 可以在调用 indexedDB.open(dB 名称、版本)return 时抛出该错误。为了响应以下问题,在 dexie 源代码中添加了空检查:

https://github.com/dfahlander/Dexie.js/issues/134

如果使用另一个错误来区分它与 window.indexedDB 的真正缺失,也许会减少混淆。

只有 Safari 具有从 indexedDB.open () 中 return null 的行为。您在 ios chrome 上看到它的原因是因为 Apple 的许可限制禁止 Safari 以外的任何其他浏览器引擎 运行 在 ios.