本地开发使用indexDB完全没有问题,代码发版后在安卓和ios真机上也没有问题,但是在微信开发者工具上却报错,indexDB的onerror的具体报错信息为:
DOMException: Internal error opening backing store for indexedDB.open.,并且开发者工具缓存已经清除。
await IndexDB.openDB()
export function openDB (version = 1) {
return new Promise((resolve, reject) => {
let indexedDB = window.indexedDB
const request = indexedDB.open(dbName, version)
request.onsuccess = function (event) {
db = event.target.result // 数据库对象
resolve(db)
console.log('数据库成功开启');
}
request.onerror = function (event) {
reject(event)
}
request.onupgradeneeded = function (event) {
// 数据库创建或升级的时候会触发
console.log('onupgradeneeded')
db = event.target.result // 数据库对象
let objectStore
if (!db.objectStoreNames.contains(storeName)) {
objectStore = db.createObjectStore(storeName, { keyPath: 'id' }) // 创建表
console.log('数据库成功创建');
// objectStore.createIndex('name', 'name', { unique: true }) // 创建索引 可以让你搜索任意字段
}
}
})
}