【问题标题】:How to cache images for offline display in a browser control in Windows Phone如何在 Windows Phone 的浏览器控件中缓存图像以供离线显示
【发布时间】:2013-02-25 23:46:03
【问题描述】:

我想从 Web 检索一些 HTML 内容(例如 RSS 提要),将其保存以供离线使用,然后将其显示在 Windows Phone 应用程序的 Web 浏览器控件中。我可以轻松地将内容保存为字符串并使用 NavigateToString() 方法显示 HTML,但我该如何处理图像?我可以下载它们并保存它们,甚至可以替换 img 标签的 src 属性,但是如何截取 Web 浏览器控件中加载的图像并从本地数据库中提供图像?

【问题讨论】:

    标签: silverlight webbrowser-control windows-phone


    【解决方案1】:

    嗯,你会遇到任何资产的问题,不仅仅是图像(除非你谈论的是没有任何外部 javascript 或 CSS 的 HTML)。您可能有一种方法来检测资产来源(<script src=""><img src=""><link href=""> 是一些明显的例子)。然后,您将该资产下载为本地文件。然后,当您显示它时,您会将 HTML 字符串中的所有资产替换为本地副本。

    我根本没有在 Windows Phone 上工作过,但我认为您的解决方案将围绕这些路线。

    【讨论】:

    • 这是我打算做的。问题是您不能只在 WP 中保存文件,您需要使用独立存储,并且应该有一些方法可以为 Web 浏览器控件引用它。另外我想使用本地数据库,所以基本上我想为图像传递一个字节数组。
    • 我明白了,如果我理解正确的话,您遇到的一个大问题是图像的布局。您将在网页上放置图像小部件来代替图像,但是您不知道它们的大小或位置。对吗?
    • 我还没想过。现在我正在解决缓存图像以供离线使用的问题。缓存 HTML 很简单(实际上是来自 RSS 提要的 HTML,因此它没有很多外部资源),下载图像并存储它们甚至替换 src 属性也不难。但是,我如何引用(现在是本地的)html 中的图像?当您为您的应用程序创建内容并将其放入包中时很容易做到这一点,但您不能以编程方式在 WP 上编写纯文件,即使我可以,我希望使用本地数据库而不是文件。
    • 好吧,如果你有一个资产或一千个资产并不重要,这在代码方面都是一样的。这可能是一个非常幼稚的建议,但我可以想到一个用于显示图像的肮脏技巧。当您第一次加载内容时,对其执行 javascript 方法以检测所有图像及其位置(或者您可以更改 HTML 以填充每个
    • 这似乎是一个非常复杂的解决方案,但谁知道是否没有其他工作...... :)
    【解决方案2】:

    我已结束解析 HTML 下载图像并将 src 属性替换为本地文件名。然后我将 html 保存在本地存储中,以便相关链接继续工作。遗憾的是,我没有找到将内容存储在数据库中的方法,因为如果我使用 NavigateToString 提供 HTML,我将无法提供图像数据。

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2011-09-27
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2016-10-25
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多