WebViewClient - onPageStarted()vs shouldOverrideUrlLoading()?

时间:2012-03-21 16:06:20

标签: android

我正在使用WebViewClient。我们是否应该看到onPageStarted()回调始终与shouldOverrideUrlLoading()回调配对?如果我在我的WebView中加载example.com,我们是否应该看到两个方法都被回调?来自文档:

onPageStarted()

  

通知主机应用程序页面已开始加载。对于每个主帧加载调用此方法一次,因此具有iframe或framesets的页面将为主帧调用onPageStarted一次。这也意味着当嵌入框架的内容发生变化时,不会调用onPageStarted,即单击目标为iframe的链接。

shouldOverrideUrlLoading()

  

当要在当前WebView中加载新URL时,让主机应用程序有机会接管控件。如果未提供WebViewClient,则默认情况下WebView将要求活动管理器为URL选择正确的处理程序。如果提供了WebViewClient,则返回true表示主机应用程序处理url,而return false表示当前WebView处理该URL。

我在每个方法中都放了一个日志语句,我发现它们并不总是配对在一起。在什么情况下他们不会?

由于

http://developer.android.com/reference/android/webkit/WebViewClient.html

1 个答案:

答案 0 :(得分:1)

我知道这个问题很老,但无论如何都要回答。 AFAIK,将为页面中的每个url调用shouldOverrideUrlLoading(),其中onPageStart()将仅为页面的顶部URL调用。