【问题标题】:(How) can I increase the quota limit of LocalStorage in Android WebView(如何)我可以增加Android WebView中LocalStorage的配额限制
【发布时间】:2012-04-11 07:56:29
【问题描述】:

我需要增加 Android WebView 中 LocalStorage 的默认配额限制。目前我只能使用大约 2.5MB。当尝试存储更多数据时,会引发 quota_exceeded_err (dom exception 22)

有什么想法或者我必须切换到数据库/文件系统吗?

【问题讨论】:

    标签: android webview local-storage quota


    【解决方案1】:

    我们正在谈论HTML5 WebStorageDOCS

    关于同一主题有很多问题,但不是 Android 特有的

    事实是,HTML5 WebStorage 在不同平台上的实现方式不同。
    桌面和移动平台和浏览器组合分配给每个网站(域)的内存(磁盘空间)配额大小不同

    不,您不能增加/减少分配给您的 HTML5 应用程序的空间,WebSettings 中没有像 Android WebKit 设置 Java 访问器类这样的选项,目前 HTML5 WebStorage 的 WebKit 实现中也没有。

    引用: http://dev.w3.org/html5/webstorage/#disk-space

    建议对每个源设置 5 MB 的任意限制。欢迎提供实施反馈,并将用于在未来更新此建议。

    如果您的 HTML5 应用程序确实需要大空间(无论是通过 PhonGap、Titanium、Rhodes 还是其他...),我强烈建议您使用 HTML Web SQL Database

    即使DOCS 说:

    本文档在 W3C 推荐轨道上,但规范工作已停止。规范陷入僵局:所有感兴趣的实现者都使用了相同的 SQL 后端(Sqlite),但我们需要多个独立的实现来沿着标准化路径前进。

    Web SQL 现在仅在 Android 设备上受支持(您在此问题中确实针对此方式),它允许您增加/减少数据的空间分配。

    请注意相关问题:

    【讨论】:

    • 谢谢,我已经知道了大部分内容,但希望能有奇迹 ;) 所以现在我必须将我的应用程序切换到 Web SQL DB ......就这样吧!
    • @NATOR 很抱歉没有带来奇迹 ;-)
    • 用户有没有办法增加这个限制?
    • @MarekSebera 您实际上如何“增加/减少数据的空间分配。”?这是我在混合网络应用程序中的确切问题 ATM。 WebSettings 似乎是答案,但我不确定如何...
    • @venkatvb 似乎是这样,唯一相关的是,Android WebKit 使用 HTML5/JS 自动配额管理,而不是固定存储配额,这应该会减少存储空间有限的问题。但是 WebSettings 有方法。您可以通过 https://developer.android.com/reference/android/webkit/WebStorage.html#getQuotaForOrigin(java.lang.String, android.webkit.ValueCallback<java.lang.Long>) 查询当前配额,但以前允许设置配额的方法自 API 18 起已弃用,因此您现在无法以任何方式设置/减少/增加配额。
    【解决方案2】:

    我刚刚为此编写了一个最小的脚本: https://github.com/DVLP/localStorageDB

    我们的目标是像在 localStorage 中一样简单地使用键值对,并利用 IndexedDB 的大容量以及由于它是异步的而潜在的性能提升。

    希望你会发现这很有用!

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2019-05-13
      相关资源
      最近更新 更多