在下一个活动中在 webview 中预加载 URL

Posted

技术标签:

【中文标题】在下一个活动中在 webview 中预加载 URL【英文标题】:Preload URL in webview in the next activity 【发布时间】:2013-02-07 12:26:09 【问题描述】:

我有 2 个活动。在第二个活动中,我有一个 WebView,我在其中加载了一个本地 html 页面(来自 assets 文件夹)。在 onCreate 方法中,我调用 webView.loadUrl(url)。 我需要一张从第一个活动过渡到第二个活动的幻灯片。这就是我的问题所在:第二个活动按原样滑入,但在 WebView 中显示页面需要一点时间。所以,基本上,只有一个白色的空白屏幕滑入。 我需要第二个 Activity 在它滑入之前加载 html 页面。 我怎么做?

【问题讨论】:

你是如何创建第二个活动的以及何时创建的? 当在第一个活动上单击按钮时,我正在使用 Intent 来启动第二个活动。 【参考方案1】:

另一种方法是将您的第二个活动(WebView 等)的内容移动到Fragment 并将其推送到现有活动中。这样您就可以在显示之前将 WebView 预加载到片段中。

【讨论】:

我想到了这个,但是从Fragment2到Fragment1的后面怎么处理呢?请记住,我将拥有多个屏幕,而不仅仅是 2 个。 来自文档,“后退堆栈允许用户通过按下后退按钮来反转片段事务(向后导航)。”。【参考方案2】:

简短的回答是:你真的不能。

一次只有一个 Activity 处于“活动状态”(在屏幕上),因此,当您的 FirstActivity 仍然可见时,您的 SecondActivity 不能做任何事情。

如果您只使用 1 个 Activity 和 2 个 WebView,一个可见,一个隐藏,则可以实现与您所追求的类似的效果。您应该能够在隐藏时在第二个(隐藏的)webview 中加载一个 url,然后使其可见并在您准备好时将其滑入。

【讨论】:

这是一个想法,但我需要对超过 2 个屏幕做同样的事情。还有返回导航的问题。

以上是关于在下一个活动中在 webview 中预加载 URL的主要内容,如果未能解决你的问题,请参考以下文章

在android应用程序的webview中加载url时启动画面

想要在 webview android 中完成 url 加载后将 webview 重定向到其他意图

在 swift 3 中启动应用程序时,如何在另一个 ViewController 中预加载 UIWebView?

在 Flutter 中预缓存 html 页面

无法在 webview 中显示本地存储中的 html 文件

在 jQuery 中预加载 wav/mp3 文件