【问题标题】:Storing a WebView for offline browsing存储 WebView 以供离线浏览
【发布时间】:2012-02-13 06:18:24
【问题描述】:

一旦加载页面,强制 Android 将 webview 存储到媒体的最佳方法是什么?

更多细节:

  • 每个页面都将包含丰富的图像、脚本和样式。

  • 每页大约 0.5 到 1 兆字节。

  • 一旦调用 OnFinishedLoading Override,它们就会被保存。

  • 最好将其保存到 SD 卡中,然后使用本地 repo 将其打开。

不确定我是否应该只为 webviews 使用 sql 数据库,或者获取每个视图并写入文件。

如果我做后者,最简单的方法是什么,这样我就不必编写完整的网络爬虫来链接每个文件?

【问题讨论】:

    标签: android html webview android-webview


    【解决方案1】:

    为了在 Android 上使用缓存,您需要提供 HTML5 清单文件以及您的 HTML。

    <!DOCTYPE html>
    <html lang="en" manifest="manifest.file">
    <head> ...
    

    缓存机制会将清单文件中列出的所有条目缓存到 SQLite 数据库中。请记住,数据库是每个应用程序,而不是每个 web 视图。 (我对此有很多问题)。

    本文介绍了实现此目标所需采取的所有步骤。 http://web.archive.org/web/20140314001433/http://alex.tapmania.org/2010/11/html5-cache-android-webview.html

    您可以使用此页面为缓存做一个 hello-world 示例: http://html5demos.com/offlineapp

    您可以将缓存保存在 SD 卡上,只要在应用清单中添加 WRITE_EXTERNAL_STORAGE 权限即可。

    祝你好运!

    【讨论】:

    • 我明白了,谢谢 - 这是有道理的。现在不是有 10 MB 的限制吗?我的意思是,我在源代码中也看到了这个:webView.getSettings().setAppCacheMaxSize(1024*1024*8);但是,这仍然提出了它​​有多大的问题?也许每页只有 10 mb?如果是这样,缓存后,我只需使用 websettings.Cacheonly 调用 webview 对吗?
    • 如果 webview 缓存文件夹设置为 SD 卡,这不会影响您的应用程序缓存文件夹。您甚至可以致电webview.clearCache() 进行检查,SD 卡上的数据库不会被清除。
    猜你喜欢
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2011-05-23
    • 2011-07-10
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多