【问题标题】:Save webpages for offline access in web app保存网页以在 Web 应用程序中离线访问
【发布时间】:2012-05-07 14:03:11
【问题描述】:

我有一个 Web 应用程序 (sencha/phonegap),其中包含一项功能,允许用户单击链接到 Wikipedia 文章的按钮。如果设备可以访问互联网,这显然可以正常工作,但是当应用程序离线时,我收到了许多让应用程序工作的请求。为此,我想为用户提供下载链接文章/网页以供离线访问的选项。当设备无法访问互联网时,应用程序将改为显示保存的版本(可能是陈旧/过时的,但总比没有好)。有哪些可能的方法来完成这项任务?

我的第一个想法是以某种方式使用 html 清单来缓存手机浏览器中的页面,这在 Android 浏览器上听起来是可行的,但 iOS 显然有 5MB 浏览器缓存限制 - 太小了。

我的下一个想法是保存所需的 html 和相关文件并将它们捆绑在应用程序中。但这似乎是一种相当麻烦的方法,应用程序变得比它需要的大得多,而且网页在应用程序安装之日已经过时了。

使用 javascript,是否可以下载网页,然后我可以保存(例如在 sd 卡上)以供以后访问?

或者有没有更优雅的方法?

如果有人能指出我正确的方向,将不胜感激。

【问题讨论】:

    标签: javascript android web-applications cordova extjs


    【解决方案1】:

    在纯 Javascript 中,您可以发出 Ajax 请求以下载页面。然后您可以使用FileWriter 将 responseText 写入文件系统上的文件。但是,在图像方面,这对您没有帮助。您需要使用FileTransfer.download() 命令来获取二进制图像文件。

    如果我是你,我会:

    1. 使用 AJAX 下载 html。
    2. 解析 html 以查找图像。
    3. 使用 FileTransfer.download 获取图像。

    【讨论】:

    • 谢谢,西蒙,这看起来是个不错的方法。我没有意识到 Phonegap 有下载文件的能力。它看起来像是最近添加的。二、快速提问。 1)在Ajax请求期间是否丢失了任何css标记,并且还需要单独下载? 2) 使用 AJAX 初始下载 html,而不是使用 FileTranfer.download() 下载 html 有什么好处?
    • 1) 如果 CSS 是文档中的链接,您还必须单独下载它。 2) 通过 AJAX 下载它的好处是你已经在内存中拥有它,然后你可以解析它以查看你需要下载的其他资源,如图像、css 等。
    猜你喜欢
    • 2014-07-10
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2011-12-26
    相关资源
    最近更新 更多