保存网页以便在网络应用中进行离线访问

时间:2012-05-07 14:03:11

标签: javascript android web-applications cordova extjs

我有一个网络应用程序(sencha / phonegap),其中包含一项功能,允许用户点击链接到维基百科文章的按钮。如果设备具有互联网访问权限,这显然可以正常工作,但是当应用程序处于脱机状态时,我会收到大量请求以使应用程序正常工为此,我想为用户提供下载链接文章/网页以供离线访问的选项。当设备没有互联网访问权限时,应用程序会显示已保存的版本(可能是陈旧/过时,但总比没有好)。有哪些方法可以完成这项任务?

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

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

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

或者有更优雅的方法吗?

如果有人能指出我正确的方向,那将非常感激。

1 个答案:

答案 0 :(得分:0)

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

如果我是你,我会:

  1. 使用AJAX下载html。
  2. 解析html寻找图片。
  3. 使用FileTransfer.download获取图片。