尝试在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
。
答案 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中。