【问题标题】:How to share image cache with WebView如何与 WebView 共享图像缓存
【发布时间】:2011-06-26 01:44:34
【问题描述】:

我自己实现了一个ImageCache模块,它可以自动下载html图片。

但是不知道怎么用WebView的ImageCache分享,如果图片已经被webview缓存了,就不会再下载了。

我实现了一个 ContentProvider,如果图像已经被缓存,则从缓存中读取,否则从 Internet 下载。但是图片通常是一起出现的,而且Webview会长时间显示空白

【问题讨论】:

    标签: android webview


    【解决方案1】:

    试试webview.loadDataWithBaseURL("file:///android_asset/",data, "text/html", "utf8",""); 之类的东西

    您可能会发现此网站对您有所帮助:Graphing Data

    【讨论】:

      【解决方案2】:

      您是否考虑过构建自己的 ContentProvider 来访问您的缓存?它并不像听起来那么可怕,您只需要扩展 ContentProvider 并将其挂钩到您的清单文件中。

      Here 是一篇描述它的博客文章 - 我在一个大量使用 WebViews 的应用程序中实现了它:Source on Github

      这种 ContentProvider 可以加载 WebView 中的所有本地文件 - 您必须将此想法调整为:

      • 在 WebView 中显示之前将所有文件下载到 sd 卡或内部存储,并通过 loadUrl() 加载本地 HTML 文件,或者
      • 仅在本地存储缓存图像,并将其在 WebView 的 HTML 代码中出现的所有原始图像位置替换为其缓存位置(使用上述 ContentProvider 扩展)。您可以通过 loadUrl() 将 javascript“注入”到 WebView 来操作 HTML 源代码 - 在视图中使用一些精细的正则表达式或一致的 CSS 类,这应该是可行的。

      【讨论】:

      • 谢谢,但我又遇到了新问题:
      • 我实现了一个ContentProvider,如果图像已经被缓存,从缓存中读取,否则从互联网下载。但是Webview有时会长时间显示空白,而且图片通常是一起出现的。
      • 我还需要用于在 Web 视图中显示这些图像的代码。 contentprovider 代码看起来不错,做得很好。
      猜你喜欢
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多