【问题标题】:Swift How to make links open in Webview?Swift 如何在 Webview 中打开链接?
【发布时间】:2017-03-08 22:04:10
【问题描述】:

我找不到解决方案。我希望你能帮助我。 我想要带有超链接的按钮以在第二个屏幕上的 webview 中打开网站。超链接在 safari 中打开,我希望它在 webview 的第二个屏幕上打开。 谢谢

【问题讨论】:

标签: ios swift button webview hyperlink


【解决方案1】:

您可以使用 SFSafariViewController 在您的应用程序中打开链接,这里是它的代码

首先你需要导入 SafariServices

import SafariServices

然后在按钮动作上,就可以打开SFSafariViewController

对于 swift 3.0

let svc = SFSafariViewController(url: URL(string:"http://stackoverflow.com")!)
self.present(svc, animated: true, completion: nil)

【讨论】:

  • NSURL(string: "http://stackoverflow.com")! as URL) 为什么不只是URL(string: "http://stackoverflow.com")!
  • @JAL 我对 swift 很陌生,感谢您纠正我 :)
  • @JAL 如果你在 swift3 中编写代码,那么你可以这样写
  • 天哪,这一定是第 3 次解决方案非常简单,但在互联网上却很难找到,因为实践和可用工具不断变化,90% 的答案已经过时!其他人说我们必须实现自己的 UIWebView
【解决方案2】:

Swift 4.1 和 Swift 5。如果应用程序内有一些链接,那么它将在 safari 中打开,因此要在同一 webview 中打开链接,请执行 navigationDelegate fo WKWebView

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
     if navigationAction.navigationType == WKNavigationType.linkActivated {
        webView.load(navigationAction.request)
        decisionHandler(.cancel)
        return
     }
     decisionHandler(.allow)
}

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2016-03-19
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多