2

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

我添加了以下内容:

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

使用 Safari 开发工具,“IDB 支持”被记录 - 但随后错误/警报弹出并阻碍操作。

我将所有的 dexie 代码都包裹在里面if (window.indexedDB)——以确保它仅在 IDB 在浏览器中可用时运行。

我的完整仓库可在https://github.com/georgecook92/Stir获得。如果查看这段代码,对 dexie 的调用位于 React 的 actionindex.js和 mainindex.js中。

4

1 回答 1

3

当对 indexedDB.open (dB name, version) 的调用返回 null 时,Dexie 会抛出该错误。针对以下问题,在 dexie 源代码中添加了 null 检查:

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

如果使用另一个错误将它与真正没有 window.indexedDB 区分开来,也许会减少混乱。

只有 Safari 具有从 indexedDB.open () 返回 null 的行为。您在 ios chrome 上看到它的原因是,由于 Apple 的许可限制禁止除 Safari 之外的任何其他浏览器引擎在 ios 上运行,该浏览器在 safari underhood 上运行。

于 2016-08-16T21:40:53.717 回答