shouldOverrideUrlLoading

shouldOverrideUrlLoading

我正在寻找与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。

09-05 17:57