Windows Store应用程序提交中的IndexedDB问题

问题描述:

我们一直在尝试将更新提交给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

原来这次认证系统有问题。

该应用程序终于获得认证。

我想你会得到这个错误,因为“窗口”丢失。你有没有试图做到以下几点? (来自微软的站点的示例代码)从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); 
} 

相关信息。