在Safari中快速打开链接

我目前在我的应用程序在WebView中打开链接,但我正在寻找一个选项,而不是在Safari中打开链接。

有没有一种简单的方法在Swift中做到这一点?

它不是“烘焙到Swift”,但你可以使用标准的UIKit方法来做到这一点。 看看UIApplicationopenUrl()

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) } 
Interesting Posts