Webview 中WebViewClient遇到的问题

官方文档是这样解析shouldOverrideUrlLoading的:
ublic boolean shouldOverrideUrlLoading (WebView view, String url)

Since: API Level 1
Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView. If WebViewClient is not provided, by default WebView will ask Activity Manager to choose the proper handler for the url. If WebViewClient is provided, return true means the host application handles the url, while return false means the current WebView handles the url.
Parameters
view The WebView that is initiating the callback.
url The url to be loaded.
Returns
True if the host application wants to leave the current WebView and handle the url itself, otherwise return false.
理解起来是开发者可以自己控制新的URL处理方式,听起来貌似很很方便。你也许会和我一样想这个function每次会在onPageStarted之前都会调用它,那么在我们开发中,若发现有些URL自己可以来处理,而不是用webview像平常的url那样解释出来,就可以在这个function中处理,可当你在开发的时候你就发现事实并不是你想象的那样,shouldOverrideUrlLoading并不是每次都在onPageStarted之前开始调用的,就是说一个新的URL不是每次都经过shouldOverrideUrlLoading的,只有在调用webview.loadURL的时候才会调用,那你怎么办呢?若你真的想自己处理一些特殊的URL,你可以在onPageStarted中处理,因为onPageStarted每次都会调用,但是你怎样让viewView停止解释你自己已经处理的URL呢,方法就是在onPageStarted中检测到url为你想要处理的之后就调用webview.stoploading的funciton来停止webview的加载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值