Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用swift打开url链接?_Ios_Swift_Xcode_Uiapplication_Openurl - Fatal编程技术网

Ios 如何使用swift打开url链接?

Ios 如何使用swift打开url链接?,ios,swift,xcode,uiapplication,openurl,Ios,Swift,Xcode,Uiapplication,Openurl,我想通过点击按钮转到一个url。我尝试过使用“UISharedapplication”,也尝试过下面提到的方法,但没有一个有效。请帮忙。 谢谢 问题在于UIApplication的canOpenURL()方法只是返回URL是否可以打开,而不是实际打开URL。确定是否可以打开URL后(如您所做的那样,通过调用canOpenURL()),必须在共享ui应用程序实例上调用open(),以实际打开URL。这一点如下所示: if let url = URL(string: "http://www.appl

我想通过点击按钮转到一个url。我尝试过使用“UISharedapplication”,也尝试过下面提到的方法,但没有一个有效。请帮忙。 谢谢


问题在于
UIApplication
canOpenURL()
方法只是返回URL是否可以打开,而不是实际打开URL。确定是否可以打开URL后(如您所做的那样,通过调用
canOpenURL()
),必须在共享
ui应用程序
实例上调用
open()
,以实际打开URL。这一点如下所示:

if let url = URL(string: "http://www.apple.com") {
    if UIApplication.shared.canOpenURL(url) {
        UIApplication.shared.open(url, options: [:])
    }
}
还接受一个可选的
completionHandler
参数,该参数带有一个
success
参数,您可以选择实现该参数来确定URL是否已成功打开。

canOpenURL(:)
方法用于确定是否已安装可以处理URL方案的应用程序。若要打开指定URL的资源,请使用
open(\uquot:options:completionHandler:)
方法。例如

 if let url = URL(string: "apple.com") {
        if UIApplication.shared.canOpenURL(url) {
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(url, options: [:], completionHandler: nil)
            } else {
                UIApplication.shared.openURL(url)
            }
        }
    }
有关更多信息,请查看此处的文档

let url=url(字符串:”)let vc=SFSafariViewController(url:url!)present(vc,动画:true,完成:nil)通过添加“Safarice”框架也解决了此问题。谢谢
 if let url = URL(string: "apple.com") {
        if UIApplication.shared.canOpenURL(url) {
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(url, options: [:], completionHandler: nil)
            } else {
                UIApplication.shared.openURL(url)
            }
        }
    }