【发布时间】:2017-03-08 22:04:10
【问题描述】:
我找不到解决方案。我希望你能帮助我。 我想要带有超链接的按钮以在第二个屏幕上的 webview 中打开网站。超链接在 safari 中打开,我希望它在 webview 的第二个屏幕上打开。 谢谢
【问题讨论】:
标签: ios swift button webview hyperlink
我找不到解决方案。我希望你能帮助我。 我想要带有超链接的按钮以在第二个屏幕上的 webview 中打开网站。超链接在 safari 中打开,我希望它在 webview 的第二个屏幕上打开。 谢谢
【问题讨论】:
标签: ios swift button webview hyperlink
您可以使用 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")!?
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)
}
【讨论】: