16

我想在 Android 中预加载一个网页。网页包含文本和图形元素。该网页将在未来显示在尚未创建的 Activity 中。

据我了解,例如 WebView 必须与 Activity 绑定,因此无法将 WebView 用于此任务。

有人有任何不涉及解析html页面和“手动”下载所有元素的建议吗?

4

2 回答 2

23

根据 android 的文档:出于明显的安全原因,您的应用程序有自己的缓存、cookie 存储等——它不共享浏览器应用程序的数据。

因此,我们可以通过以下方式巧妙地利用上述信息:

  • 每当您想开始加载您的网站时,请创建一个新的 WebView 对象并从中请求 url。代码将如下所示:

     WebView view = new WebView(context);
     view.loadUrl(myBigWebSite);
    
  • Android 将缓存该 webview 数据,当您从另一个活动请求 loadUrl 时,它应该已经加载。

     // in your WebView activity
     myWebView.loadUrl(myBigWebSite);
    

有关 webViews 的更多信息,请访问文档页面:WebView doc

于 2013-02-17T18:32:07.653 回答
2

您可以将所有必需的文件(图像等)下载到网络线程上的某个文件夹中,然后使用类似

webview.loadUrl("file:///my_cached_folder/index.html");

如果引用并存在,也将从该文件夹中挑选图像。在此处阅读有关在 webview 上打开本地文件的信息。

于 2013-02-17T18:17:51.737 回答