Ios8 Indexeddb无法从web应用程序在iPhone IOS 8上运行

Ios8 Indexeddb无法从web应用程序在iPhone IOS 8上运行,ios8,indexeddb,iphone-standalone-web-app,Ios8,Indexeddb,Iphone Standalone Web App,我的Indexeddb有问题,当你将web应用程序锁定到主屏幕时,它似乎停止工作。在safari浏览器中运行时,一切正常。这是已知的限制吗?已知的问题。iOS 8上的“主屏幕”和“Cordova”web应用程序中的IndexedDB对象均为空。 此外,它是只读的。所以IndexedBSHIM也失败了 使用window.\u indexedDB()的方法对我有效…indexedDB对cordova的支持率只有一半!他们只有一个只读数据库(完全无用) 但是,您可以通过使用polyfill来进行变通

我的Indexeddb有问题,当你将web应用程序锁定到主屏幕时,它似乎停止工作。在safari浏览器中运行时,一切正常。这是已知的限制吗?

已知的问题。iOS 8上的“主屏幕”和“Cordova”web应用程序中的IndexedDB对象均为空。 此外,它是只读的。所以IndexedBSHIM也失败了


使用window.\u indexedDB()的方法对我有效…

indexedDB对cordova的支持率只有一半!他们只有一个只读数据库(完全无用) 但是,您可以通过使用polyfill来进行变通

ios8中polyfill的问题是,indexdb shim检测到并安装了indexdb,但在不知道它们是只读版本的情况下,它们使用window.indexdb而不是shim。因此,必须强制使用indexshim而不是window.indexeddb

打开pollyfill的代码 查找代码块:

   if ((typeof window.indexedDB === "undefined" || poorIndexedDbSupport) && typeof window.openDatabase !== "undefined") {
    window.shimIndexedDB.__useShim();
}
else {
    window.IDBDatabase = window.IDBDatabase || window.webkitIDBDatabase;
    window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
    window.IDBCursor = window.IDBCursor || window.webkitIDBCursor;
    window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
    if(!window.IDBTransaction){
        window.IDBTransaction = {};
    }
    /* Some browsers (e.g. Chrome 18 on Android) support IndexedDb but do not allow writing of these properties */
    try {
    window.IDBTransaction.READ_ONLY = window.IDBTransaction.READ_ONLY || "readonly";
    window.IDBTransaction.READ_WRITE = window.IDBTransaction.READ_WRITE || "readwrite";
    } catch (e) {}
}
并替换为:

   window.shimIndexedDB.__useShim();

你可以在
窗口中使用indexedDB。shimIndexedDB

我记得最近看到其他人抱怨同样的事情。对不起,我似乎找不到链接。