ShouldStartLoad イベントをインターセプトする UIWebView を使用すると、次のことを行うだけで済みます。
_webView.ShouldStartLoad += (webView、リクエスト、ナビゲーション タイプ) => { true を返す }
WKWebView でこれを処理するにはどうすればよいですか?
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);