我需要在safari浏览器中打开一个链接,但我有疑问,我应该使用哪种方法? openURL/open
或canOpenURL
。
谁能帮我解释一下这两个功能有什么实际区别?
if #available(iOS 10.0, *) {
UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)
UIApplication.shared.canOpenURL(URL(string: urlStr)!)
} else {
UIApplication.shared.openURL(URL(string: urlStr)!) //introduced: 2.0, deprecated: 10.0,
UIApplication.shared.canOpenURL(URL(string: urlStr)!) // available(iOS 3.0, *)
}
答案 0 :(得分:4)
<强> canOpenURL(_:)强>
返回一个布尔值,指示设备上安装的某个应用是否可以处理URL的方案。
<强>的OpenURL(_:)强>
尝试在指定的URL处打开资源。
AddressId
已弃用 - openURL(_:)
请改用iOS 10.0
方法。
示例:
open(_:options:completionHandler:)
答案 1 :(得分:2)
canOpenURL:它会返回bool,无论网址是否可以打开。
示例:
func schemeAvailable(scheme: String) -> Bool {
if let url = URL(string: scheme) {
return UIApplication.shared.canOpenURL(url)
}
return false
}
openURL:打开网址。
因为它已从ios 10弃用,因此新的func为openURL:options:completionHandler:
实施例
func open(scheme: String) {
if let url = URL(string: scheme) {
UIApplication.shared.open(url, options: [:], completionHandler: {
(success) in
print("Open \(scheme): \(success)")
})
}
}