我对 Android 版 Chrome 中的 IndexedDB 支持状态感到困惑。
Todo list demo来自 HTML5 Rocks 在我桌面上的 Chrome 23 中运行良好。在 Android 4.0.4 上的 Chrome 18 中,它看起来很有希望:window.webkitIndexedDB 存在,我可以打开一个数据库并创建一个商店。但是,一旦我尝试写入存储,就会收到 READ_ONLY_ERR: DOM IDBDatabase Exception 9
。
Android 版 Chrome 的几个概述表明它支持 IndexedDB,但我找不到任何更深入的讨论或文档,或者人们成功使用它的例子。
最佳答案
READ_ONLY_ERR:DOM IDBDatabase 异常 9
错误是说问题是什么。您正在尝试将数据写入只读事务内的对象存储。您需要使用 readwrite 打开一个事务。
db.transaction(["scope"], "readwrite");
我不确定在 android 4 上实现了哪个版本的 indexeddb,所以它可能仍然使用整数值。在这种情况下,您应该使用以下内容:如果存在 webkit 版本,则应使用 window.webkitIDBTransaction.READ_WRITE,如果存在 native 版本,则应使用 window.IDBTransaction.READ_WRITE。
db.transaction(["scope"], window.webkitIDBTransaction.READ_WRITE);
编辑 我查看了该项目的源代码,发现它已经使用了“readwrite”版本。也许这在 android 版本中还没有实现?我建议您使用我给您的第二种可能性。
关于android - IndexedDB 在 Chrome for Android 上写入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12730123/