首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WKWebView的包装器-加载WKWebView中的所有链接

使用WKWebView的包装器-加载WKWebView中的所有链接
EN

Stack Overflow用户
提问于 2016-10-08 17:37:55
回答 1查看 479关注 0票数 0

WKWebView允许你通过Safari打开外部链接(不同于基本url)。

但是,有时您希望打开WKWebView本身中的所有链接。

例如,假设您有一个基本url "https://trader.finmarkets.com",但您也希望在WKWebView内打开一个链接"https://secure.transactions.finmarkets.com",而不使用将从外部打开的UIApplication.shared.open(url)。

问题是:

How do I wrap my website to open all links on the WKWebview?

(当然,电子邮件和电话号码除外)

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-08 20:22:55

您可以尝试如下所示:

代码语言:javascript
复制
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
    if navigationAction.navigationType == .LinkActivated  {
        if let newURL = navigationAction.request.URL &&
            UIApplication.sharedApplication().canOpenURL(newURL) &&
            UIApplication.sharedApplication().openURL(newURL) {
                print(newURL)
                print("User clicked on link. Open it internally.")
                decisionHandler(.Allow)
        } else {
            print("Cannot open URL")
        }
    } else {
        print("Not a user click")
    }
}

您可能需要对此稍加修改才能使其完美工作,但我认为它可能符合您的要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39930875

复制
相关文章

相似问题

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