openURL和amp;的区别canOpenURL

时间:2018-01-01 09:51:36

标签: ios swift openurl

我需要在safari浏览器中打开一个链接,但我有疑问,我应该使用哪种方法? openURL/opencanOpenURL。 谁能帮我解释一下这两个功能有什么实际区别?

 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, *)
    }

2 个答案:

答案 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)")
    })
  }
}