【问题标题】:How to open url link by using swift?如何使用swift打开url链接?
【发布时间】:2018-08-01 00:40:04
【问题描述】:
我想通过点击按钮转到一个网址。我尝试使用 'UISharedapplication' 并通过下面提到的方法,但没有任何效果。请帮忙。
谢谢。
@IBAction func Displayurl(_ sender: Any) {
UIApplication.shared.canOpenURL(NSURL (string: "http://www.apple.com")! as URL)
}
【问题讨论】:
标签:
ios
swift
xcode
uiapplication
openurl
【解决方案1】:
问题在于UIApplication 的canOpenURL() 方法只是返回是否 URL可以被打开,并没有真正打开URL。一旦确定是否可以打开 URL(通过调用 canOpenURL(),就像您所做的那样),您必须在共享的 UIApplication 实例上调用 open() 以实际打开 URL。如下所示:
if let url = URL(string: "http://www.apple.com") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:])
}
}
open() 还接受一个可选的 completionHandler 参数和一个 success 参数,您可以选择实施该参数以确定 URL 是否已成功打开。
【讨论】:
-
let url = URL(string: "google.com") let vc = SFSafariViewController(url: url!) present(vc, animated: true, completion: nil) 通过添加 'Safariservice' 也解决了这个问题框架。谢谢
【解决方案2】:
canOpenURL(_:) 方法用于是否有安装的应用程序可以处理 url 方案。要打开指定 URL 的资源,请使用 open(_: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)
}
}
}
欲了解更多信息,请查看此处的文档https://developer.apple.com/documentation/uikit/uiapplication/1622961-openurl