在 Android 中预加载网页(使用 WebView?)

Posted

技术标签:

【中文标题】在 Android 中预加载网页(使用 WebView?)【英文标题】:Preloading web page in Android (using WebView?) 【发布时间】:2013-02-02 04:12:28 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

根据 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

【讨论】:

本地html文件也是这样吗?【参考方案2】:

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

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

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

【讨论】:

以上是关于在 Android 中预加载网页(使用 WebView?)的主要内容,如果未能解决你的问题,请参考以下文章

使用 webview 和刷新按钮加载 android

在 Android 应用程序开发中预加载或预缓冲 .mp4 视频

使用“预加载”链接指令在 Chrome 中预加载字体

在 SpriteKit 中预加载纹理

Android WebView 获取网页的标题

如何使用 swift 3 xcode 8 在核心数据中预加载数据库