Android 版 Chrome 上的 IndexedDB 写入失败

Dre*_*ars 4 android google-chrome indexeddb

我对 Android 版 Chrome 中 IndexedDB 支持的状态感到困惑。

HTML5 Rocks 的待办事项列表演示在我的桌面上的 Chrome 23 中运行良好。在 Android 4.0.4 上的 Chrome 18 中,看起来很有希望:window.webkitIndexedDB 存在,我可以打开数据库并创建商店。但当我尝试写信给商店时,我收到了一个READ_ONLY_ERR: DOM IDBDatabase Exception 9.

Android 版 Chrome 的一些概述表明它支持 IndexedDB,但我找不到任何更深入的讨论或文档,或者人们成功使用它的示例。

Kri*_*ave 5

READ_ONLY_ERR:DOM IDB数据库异常 9

错误说明了问题所在。您正在尝试将数据写入只读事务内的对象存储。您需要以读写方式打开事务。

db.transaction(["scope"], "readwrite");
Run Code Online (Sandbox Code Playgroud)

我不确定 android 4 上实现的是哪个版本的 indexeddb,因此它可能仍然使用整数值。在这种情况下,您应该使用以下内容:如果存在 webkit 版本,则应使用 window.webkitIDBTransaction.READ_WRITE;如果存在本机版本,则应使用 window.IDBTransaction.READ_WRITE。

db.transaction(["scope"], window.webkitIDBTransaction.READ_WRITE);
Run Code Online (Sandbox Code Playgroud)

编辑 我查看了该项目的源代码,发现它使用了“readwrite”版本。也许这在android版本中还没有实现?我建议您使用我给您的第二种可能性。