几周来,我们一直在尝试向 Windows 应用商店桌面/平板电脑应用程序提交更新。该应用在测试时未能正确初始化,但我们无法在本地重现任何问题。
这是一个 Javascript WebApp,我们使用 Cordova 使其跨平台。
在添加了一些远程错误日志记录后,我们注意到在测试人员的机器上存在 IndexedDB 初始化错误。
我们似乎失败的代码是:
var dbOpenRequest = indexedDB.open('CustomDBName', 1);
这似乎立即失败,并调用我们的错误处理程序 (dbOpenRequest.onerror = ...)。
这可能是什么原因造成的?
- 我们在操作系统等方面尝试了多种设备和管理/访客模式。
这会不会是测试机的问题?
- 我们之前批准和发布的应用程序现在似乎也有这个问题。我们尝试重新提交我们的旧应用程序,但它未能通过认证(奇怪!)。
我们有什么理由没有在我们的任何设备上注意到这一点?我们已经使用我们提交给商店的同一版本在以下设备上测试了该应用程序:
- 华硕 T100 变形金刚,Win 8.1
- Dell Venue Pro 11,Win 8.1
- 运行 Win 8.1 的 Digiland 8"平板电脑
- 其他 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
您对接下来要尝试什么有什么想法或建议吗?
最佳答案
我认为您收到此错误是因为缺少“window”。您是否尝试过执行以下操作? (来自微软网站的示例代码)
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);
}
相关信息来自Microsoft , Cordova IndexDB plugin .
关于windows-store-apps - Windows 应用商店应用提交的 IndexedDB 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701436/