【问题标题】:Wrapper with WKWebView - Load ALL links within WKWebView带有 WKWebView 的包装器 - 在 WKWebView 中加载所有链接
【发布时间】:2016-10-08 09:37:55
【问题描述】:

WKWebView 允许您通过 Safari 打开外部链接(与基本 URL 不同的链接)。
但是,有时您想打开 WKWebView 本身内的所有链接。
例如,假设您有一个基本 url "https://trader.finmarkets.com",但您有一个链接 "https://secure.transactions.finmarkets.com",您还想在 WKWebView 内打开而不使用将在外部打开的 UIApplication.shared.open(url)。

问题是:
How do I wrap my website to open all links on the WKWebview?
(当然,电子邮件和电话号码除外)

谢谢。

【问题讨论】:

    标签: ios objective-c swift wkwebview


    【解决方案1】:

    你可以试试这样的:

    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")
        }
    }
    

    您可能需要稍微调整一下才能使其完美运行,但我认为它可能符合您的要求。

    【讨论】:

      猜你喜欢
      • 2016-08-31
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      相关资源
      最近更新 更多