我有一些逻辑,我希望我的 WebView 在我尝试更改其 url 时应用。对于加载页面中的链接,这很好,我可以通过在我的自定义 WebViewClient 上使用 shouldOverrideUrlLoading 方法来完成。
但是当我在我的 WebView 上显式调用 loadUrl 时,不会触发 shouldOverrideUrlLoading(很明显,否则在从该方法中调用 loadUrl 时会产生无限循环)。
有没有办法手动“预加载”一个 url,以便调用 shouldOverrideUrlLoading 方法?
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("myapp://")
{
//Do something
}
else {
view.loadUrl(url);
}
return true;
}
当我从呈现的页面中单击链接时,这可以正常工作。但如果我打电话:
mWebView.loadUrl("myapp://whatever");
shouldOverrideUrlLoading()
不叫。我要问的是是否有一种方法可以将 url 传递给我的 webView,以便shouldOVerrideUrlLoading()
在实际加载之前传递给它。(即在即将shouldOVerrideUrlLoading()
加载新网址时调用。这就是我要触发的事件)