我正在寻找与WPF WebBrowser的“Navigating”事件或IOS UiWebView的“ShouldStartLoad”等效的Android WebView事件。
我发现“shouldOverrideUrlLoading”,但是我不知道如何使用它,因为构造函数需要一个URL。
我想在导航之前拦截Url,并取消某些URL的导航...
我在Visual Studio中使用Xamarin。
相当于WPF:
webBrowser.Navigating += WebBrowserNavigating;
private void WebBrowserNavigating(object sender, NavigatingEventArgs e)
{
if (//condition)
e.Cancel = true;
//Do something else
}
最佳答案
是的,您应该使用shouldOverrideUrlLoading方法。该方法会自动调用,因此您不必担心参数。
为了使用此方法,您必须首先创建一个WebViewClient,如下所示:
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
...
}
}
然后,将其设置为WebViewClient:
webview.setWebViewClient(new HelloWebViewClient());
调用shouldOverrideUrlLoading方法时,您将通过参数接收WebView和将要加载的URL。