发布
社区首页 >问答首页 >SWIFT3.0中的WKWebView代表(decidePolicyFor)问题

SWIFT3.0中的WKWebView代表(decidePolicyFor)问题
EN

Stack Overflow用户
提问于 2016-09-05 09:36:01
回答 1查看 6.4K关注 0票数 3

我目前正在将一个WKWebView实现到我的应用程序中,我想使用decidePolicyFor委托方法来决定我的应用程序如何响应外部链接。

代码语言:javascript
代码运行次数:0
复制
    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:)

有没有人知道这个问题的解决方案,更重要的是,为什么会发生这种情况?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-05 10:13:39

当您在Xcode中发现一些奇怪的东西时,请检查最新参考。(有些引用可能不是最新的,但幸运的是,委托方法的描述似乎是最新的。)

声明 可选的func webView(_ webView: WKWebView,decidePolicyFor navigationAction: WKNavigationAction,decisionHandler:@webView (WKNavigationActionPolicy) -> Void)

@escaping后面添加decisionHandler:

代码语言:javascript
代码运行次数:0
复制
func webView(_ webView: WKWebView,
             decidePolicyFor navigationAction: WKNavigationAction,
             decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39327702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档