【发布时间】:2014-09-30 14:51:59
【问题描述】:
使用 UIWebView 来拦截 ShouldStartLoad 事件,我所要做的就是:
_webView.ShouldStartLoad += (webView, request, navigationType) => { return true }
如何使用 WKWebView 处理这个问题?
【问题讨论】:
使用 UIWebView 来拦截 ShouldStartLoad 事件,我所要做的就是:
_webView.ShouldStartLoad += (webView, request, navigationType) => { return 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);
【讨论】: