2016-05-03 1 views
0

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であるため、オブジェクトストアが作成されないという問題があります。

すでにIndexedDBshimCordova IndexedDB Pluginが含まれていますが、まだ動作していません。

誰も同じような問題に遭遇しましたか?

答えて

0

問題が見つかりました。 evt.currentTargetの代わりにevt.targetを使用しなければなりませんでした。

関連する問題