我目前正在将一个WKWebView实现到我的应用程序中,我想使用decidePolicyFor委托方法来决定我的应用程序如何响应外部链接。
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if navigationAction.navigationType == WKNavigationType.linkActivated && !(navigationAction.request.url?.host?.lowercased().hasPrefix("www.example.com"))! {
UIApplication.shared.open(navigationAction.request.url!, options: [:], completionHandler:nil)
decisionHandler(.allow)
}
else
{
decisionHandler(.cancel)
}
}
然而,编译器给我提供了以下迅速3.0的问题:
实例方法'webView(:decidePolicyFor:decisionHandler:)‘几乎匹配协议'WKNavigationDelegate’的可选要求‘webView(:decidePolicyFor:decisionHandler:)
有没有人知道这个问题的解决方案,更重要的是,为什么会发生这种情况?
提前感谢
发布于 2016-09-05 10:13:39
当您在Xcode中发现一些奇怪的东西时,请检查最新参考。(有些引用可能不是最新的,但幸运的是,委托方法的描述似乎是最新的。)
声明 可选的func webView(_ webView: WKWebView,decidePolicyFor navigationAction: WKNavigationAction,decisionHandler:@webView (WKNavigationActionPolicy) -> Void)
在@escaping
后面添加decisionHandler:
。
func webView(_ webView: WKWebView,
decidePolicyFor navigationAction: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
https://stackoverflow.com/questions/39327702
复制相似问题