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
你对接下来要做什么有什么想法或建议吗?
答
原来这次认证系统有问题。
该应用程序终于获得认证。
答
我想你会得到这个错误,因为“窗口”丢失。你有没有试图做到以下几点? (来自微软的站点的示例代码)从Microsoft,Cordova 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);
}
相关信息。
你可以把日志记录在你的错误处理程序中,并告诉错误是什么?如果IDB不开放,那么这意味着它从来没有在你的应用程序工作,或者是有时和在某些特定的情况下,你会得到这一步?查看http://caniuse.com/#feat=indexeddb以了解IDB对各种浏览器的支持。我假设你的'indexedDB'实际上是一个持有'window.indexedDB'的变量,因为要打开一个IDB你需要'window.indexedDB.open' – hagrawal
@hagrawal这个错误似乎是“UnknownError”。这对我们的第一次提交来说工作得很好,它也使用了IndexedDB并成功提交给商店。 – stringo0
如果错误是“UnknownError”,那么它并不意味着你不能从中获取信息。仅供参考 - 你可以使用event.target.error.name' event.target获取来自错误处理程序的信息。 source.name','event.target.error.message'等,这对于RCA来说可能是至关重要的。 – hagrawal