如何从iOS应用程序启动Safari并打开URL

226
在设置页面上,我想包含三个链接:
  • 我的应用支持网站
  • YouTube应用教程
  • 我的主要网站(即:连接到“由Dale Dietrich创建”的标签。)
我已经在该网站、网络和文档中进行了搜索,但没有找到明显的方法。
注意:我不想在我的应用程序内打开网页。我只想发送链接到Safari,然后在那里打开该链接。我已经看到许多应用程序在它们的设置页面中执行同样的操作,因此这一定是可能的。

我在使用Ionic Cordova应用程序进行混合开发时遇到了同样的问题。 - Sopo
15个回答

3

openURL(:)在iOS 10.0中已经弃用,相应地,您应该使用UIApplication的以下实例方法:open(:options:completionHandler:)

使用Swift的示例
这将在Safari中打开“https://apple.com”。

if let url = URL(string: "https://apple.com") {
    if UIApplication.shared.canOpenURL(url) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }
}

https://developer.apple.com/reference/uikit/uiapplication/1648685-open


2

在SWIFT 3.0中

               if let url = URL(string: "https://www.google.com") {
                 UIApplication.shared.open(url, options: [:])
               }

1

试试这个:

NSString *URL = @"xyz.com";
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:URL]])
{
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]];
}

0
在Swift 1.2中,可以尝试这样做:
let pth = "http://www.google.com"
    if let url = NSURL(string: pth){
        UIApplication.sharedApplication().openURL(url)

请告诉我你写的代码中有什么新内容,为什么要给我点踩? - Dilip Tiwari

-2

Swift 4解决方案:

UIApplication.shared.open(NSURL(string:"http://yo.lo")! as URL, options: [String : Any](), completionHandler: nil)

1
一个合适的Swift 4版本应该使用URL而不是NSURL。将NSURL强制转换为URL并不相同。请参见stackoverflow.com/a/37812485/2227743以获取解释。此外,强制解包是不好的。 - Eric Aya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接