Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在web app中保存网页以供脱机访问_Javascript_Android_Web Applications_Cordova_Extjs - Fatal编程技术网

Javascript 在web app中保存网页以供脱机访问

Javascript 在web app中保存网页以供脱机访问,javascript,android,web-applications,cordova,extjs,Javascript,Android,Web Applications,Cordova,Extjs,我有一个web应用程序(sencha/phonegap),它包含一个功能,允许用户点击链接到维基百科文章的按钮。如果设备可以访问互联网,这显然可以正常工作,但当应用程序离线时,我会收到很多请求,要求它工作。为了实现这一点,我想让用户可以选择下载链接的文章/网页进行离线访问。当设备无法访问互联网时,应用程序将显示保存的版本(可能过时,但总比没有好)。完成这项任务的可能方法有哪些 我的第一个想法是以某种方式使用html清单在手机浏览器中缓存页面,这在Android浏览器上听起来是可能的,但iOS显然

我有一个web应用程序(sencha/phonegap),它包含一个功能,允许用户点击链接到维基百科文章的按钮。如果设备可以访问互联网,这显然可以正常工作,但当应用程序离线时,我会收到很多请求,要求它工作。为了实现这一点,我想让用户可以选择下载链接的文章/网页进行离线访问。当设备无法访问互联网时,应用程序将显示保存的版本(可能过时,但总比没有好)。完成这项任务的可能方法有哪些

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

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

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

还是有更优雅的方法


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

在纯Javascript中,您可以请求下载页面。然后可以使用将responseText写入文件系统上的文件。但是,当涉及到图像时,这对您没有帮助。您需要使用该命令来获取二进制图像文件

如果我是你,我会:

  • 使用AJAX下载html
  • 解析html以查找图像
  • 使用FileTransfer.download获取图像

  • 谢谢,西蒙,这看起来是个好办法。我不知道Phonegap有能力下载文件。这看起来像是最近增加的。两个简单的问题。1) 在Ajax请求过程中是否丢失了任何css标记,并且还需要单独下载?2) 使用AJAX最初下载html有什么好处,而不是同时使用FileTransfer.download()来下载html?1)如果CSS是文档中的一个链接,您也必须单独下载它。2) 通过AJAX下载它的好处是,您已经将它存储在内存中,然后您可以解析它以查看需要下载的其他资源,如图像、css等。