使用 WebView 时,我们通常会重写以下方法:
shouldOverrideUrlLoading()
onPageStarted()
onPageFinished()
一、WebView 内部点击连接,他们的回调顺序是这样的:
1、如果是固定的地址:
shouldOverrideUrlLoading() -> onPageStarted()-> onPageFinished()
shouldOverrideUrlLoading()由于它要提供给APP选择加载网页环境的机会,所以只要是网页上地址请求,都会获取到。
2、如果是重定向地址,在跳转到目的地址之前会不断重定向,每一次重定向都会回调:
redirection: onPageStarted()->shouldOverrideUrlLoading()->onPageFinished()
那么一个正常的重定向地址,方法的执行顺序就是:
shouldOverrideUrlLoading()->redirection -> … ->redirection ->onPageStarted()->onPageFinished()
二、开启WebView 直接loadUrl(其实就是少了shouldOverrideUrlLoading()):
1、 如果是目的地址,那么方法的执行顺序是:
onPageStarted()-> onPageFinished()
loadUrl()加载地址时,一般不会触发shouldOverrideUrlLoading(),一旦触发了,就说明