Dexie / IndexedDB移动私人浏览错误 - 哦哦:缺少API错误:IndexedDB API不可用

时间:2016-08-16 19:23:41

标签: javascript ios indexeddb incognito-mode dexie

尝试在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的调用位于index.js的操作和React的主index.js

1 个答案:

答案 0 :(得分:1)

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

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

如果使用另一个错误将其与真正缺少window.indexedDB区分开来,可能会减少混淆。

只有Safari具有从indexedDB.open()返回null的行为。你在ios chrome上看到它的原因是因为Apple禁止使用除了Safari以外的任何其他浏览器引擎在ios上运行的浏览器,因此该浏览器运行在safari中。