iOS用CordovaアプリケーションをバックグラウンドでIndexedDBデータベースとともに開発しています。ここでは、データベースを開くための私のコードは次のとおりです。IndexedDB onupgradeneededイベントターゲットがiOSでnullです
今indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
if (!indexedDB) {
window.alert("Your browser doesn't support a stable version of IndexedDB.");
}
console.log("openDb ...");
var req = indexedDB.open(insectDbName, 21);
console.log(req);
req.onsuccess = function(evt) {
debugger;
db = this.result;
console.log("openDb DONE");
};
req.onerror = function(evt) {
//debugger;
console.error("openDb: ", evt.target.errorCode);
};
req.onupgradeneeded = function(evt) {
console.log("openDb.onupgradeneeded");
//debugger;
var versionStore = evt.currentTarget.result.createObjectStore(versionStoreName, { autoIncrement : true});
console.log("versionStore created");
};
、私の問題は、私は、データベースを開いたときに、要求は一切IDBOpenRequest
対象ではありません、です。しかし、イベントは発砲しています。新しいバージョン番号でデータベースを開くと、onupgradeneeded
イベントが呼び出されます。現在のバージョンで開くと、onsuccess
イベントが呼び出されます。 onupgradeneeded
イベントでevt.currentTarget
がnullであるため、オブジェクトストアが作成されないという問題があります。
すでにIndexedDBshimとCordova IndexedDB Pluginが含まれていますが、まだ動作していません。
誰も同じような問題に遭遇しましたか?