3

我們一直在嘗試將更新提交給Windows Store桌面/平板電腦應用幾個星期。該應用在測試時未能正確初始化,但我們無法在本地重現任何問題。Windows Store應用程序提交中的IndexedDB問題

這是一個Javascript WebApp,我們正在使用Cordova來使其跨平臺。

添加了一些遠程錯誤日誌記錄後,我們注意到在測試人員的機器上有一個IndexedDB初始化錯誤。

的代碼,我們似乎失敗是:

var dbOpenRequest = indexedDB.open('CustomDBName', 1); 

這似乎立即失敗,並調用錯誤處理程序(dbOpenRequest.onerror = ...)。

這是什麼原因造成的?

  • 我們已經嘗試了幾種設備和admin /訪客模式的操作系統上,等

難道這是一個測試機的問題?

  • 我們以前批准和發佈的應用程序似乎現在也有這個問題。我們嘗試重新提交我們的舊應用程序,但未通過認證(奇怪!)。

是否有任何理由說我們沒有注意到我們的任何設備?

  • 華碩T100變壓器,贏8.1
  • 戴爾Venue Pro的11,贏8.1
  • Digiland 8" 平板上的WIN:我們已經用我們提交到店相同的生成測試的應用程序在以下設備8.1
  • 其它Surface平板
  • 一些在Windows 8.1的筆記本電腦和10

最近的支持問題,我發現與此相關的,似乎是一個操作系統的問題:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/7771e681-724c-4229-912c-06b627ce4c16/uwphtml-win10-build-10547-javascript-uwp-indexeddb-cannot-be-opened?forum=wpdevelop

你對接下來要做什麼有什麼想法或建議嗎?

+0

你可以把日誌記錄在你的錯誤處理程序中,並告訴錯誤是什麼?如果IDB不開放,那麼這意味着它從來沒有在你的應用程序工作,或者是有時和在某些特定的情況下,你會得到這一步?查看http://caniuse.com/#feat=indexeddb以瞭解IDB對各種瀏覽器的支持。我假設你的'indexedDB'實際上是一個持有'window.indexedDB'的變量,因爲要打開一個IDB你需要'window.indexedDB.open' – hagrawal

+0

@hagrawal這個錯誤似乎是「UnknownError」。這對我們的第一次提交來說工作得很好,它也使用了IndexedDB併成功提交給商店。 – stringo0

+0

如果錯誤是「UnknownError」,那麼它並不意味着你不能從中獲取信息。僅供參考 - 你可以使用event.target.error.name' event.target獲取來自錯誤處理程序的信息。 source.name','event.target.error.message'等,這對於RCA來說可能是至關重要的。 – hagrawal

回答

0

原來這次認證系統有問題。

該應用程序終於獲得認證。

2

我想你會得到這個錯誤,因爲「窗口」丟失。你有沒有試圖做到以下幾點? (來自微軟的站點的示例代碼)從MicrosoftCordova IndexDB plugin

var hDb = null; 

try { 

    if (window.indexedDB) { 

     var req = window.indexedDB.open("CustomDBName", 1); 

     req.onsuccess = function(evt) { 
     hDB = evt.target.result; 
     }  

     req.onerror = failureHandler(); 
     req.onblocked = blockedHandler(); 

     req.onupgradeneeded = function(evt) { 
     createDatabaseObjects(evt.target.result); 
     } 
    } 
} catch(ex) { 
    handleException(ex); 
} 

相關信息。