6

ShouldStartLoad イベントをインターセプトする UIWebView を使用すると、次のことを行うだけで済みます。

_webView.ShouldStartLoad += (webView、リクエスト、ナビゲーション タイプ) => { true を返す }

WKWebView でこれを処理するにはどうすればよいですか?

4

1 に答える 1

11

WKNavigationDelegate サブクラスでDecidePolicyをオーバーライドする必要があります。

public class WebNavigationDelegate : WKNavigationDelegate
{

    ...

    public override void DecidePolicy(WKWebView webView, WKNavigationAction navigationAction, Action<WKNavigationActionPolicy> decisionHandler)
    {
        var url = navigationAction.Request.Url;
        if (true) //Whatever your test happens to be
        {
            decisionHandler(WKNavigationActionPolicy.Allow);
        }
        else
        {
            decisionHandler(WKNavigationActionPolicy.Cancel);
        }
    }

    ...

}

次に、webview のナビゲーション デリゲートを新しいクラスに設定します。

_webView.NavigationDelegate = new WebNavigationDelegate(this);
于 2016-05-06T00:42:03.920 に答える