在Safari中快速打开链接
我目前在我的应用程序在WebView中打开链接,但我正在寻找一个选项,而不是在Safari中打开链接。
有没有一种简单的方法在Swift中做到这一点?
它不是“烘焙到Swift”,但你可以使用标准的UIKit
方法来做到这一点。 看看UIApplication
的openUrl()
。
Swift 3
UIApplication.shared.openURL(URL(string: "http://www.stackoverflow.com")!)
Swift 2.2
UIApplication.sharedApplication().openURL(NSURL(string: "http://www.stackoverflow.com")!)
iOS 9和更高版本的新function可以让用户使用SFSafariViewController
(请参阅文档)。 基本上,您可以获得发送用户到Safari的所有好处,而不会让他们离开您的应用程序。 要使用新的SFSafariViewController只是:
import SafariServices
并在事件处理程序中的某个地方向用户显示safari视图控制器,如下所示:
let svc = SFSafariViewController(url: url) present(svc, animated: true, completion: nil)
safari视图看起来像这样:
您可以通过以下方式隐式检查NSURL:
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.sharedApplication().openURL(requestUrl) }
Swift 3和IOS 10.2
UIApplication.shared.open(URL(string: "http://www.stackoverflow.com")!, options: [:], completionHandler: nil)
Swift 3和IOS 10.2
在Swift 1.2中:
@IBAction func openLink { let pth = "http://www.google.com" if let url = NSURL(string: pth){ UIApplication.sharedApplication().openURL(url) }
在Swift 2.0中:
UIApplication.sharedApplication().openURL(NSURL(string: "http://stackoverflow.com")!)
从iOS 10开始,你应该使用:
guard let url = URL(string: linkUrlString) else { return } if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:], completionHandler: nil) } else { UIApplication.shared.openURL(url) }