Indexeddb not working on iPhone IOS 8 from web app

I am having problems with Indexeddb, it seems to stop working when you bind the web app to the home screen. Everything works fine when running in Safari browser. Is this a known limitation?


source to share

3 answers

Known issue. Other iOS8 bugs include IndexedDB.



An object

window.indexedDB on both the Home Screen and the Cordova web app on iOS 8 is null. And yet - only readable. So indexedDBShim also failed ...

The approach with window._indexedDB ( ) works for me ...



IndexedDB is half supported for cordova! They only have a read-only database (totally useless) But you can do a workaround using a polyfill like Polyfill Indexeddb

The polyfill problem in ios8 case is that indexdb shim detects that indexdb is installed, but not knowing that they are read-only version, they use window.indexdb, not shim. Therefore, you must force indexshim instead of window.indexeddb.

Open the refill code to find the code block:

   if ((typeof window.indexedDB === "undefined" || poorIndexedDbSupport) && typeof window.openDatabase !== "undefined") {
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;
        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) {}


and replace with:



you can use indexedDB with window.shimIndexedDB



All Articles