- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要在 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, *)
}
最佳答案
canOpenURL(_:)
返回一个 bool 值,指示 URL 的方案是否可以由安装在设备上的某些应用程序处理。
openURL(_:)
尝试在指定的 URL 打开资源。
openURL(_:)
已弃用 - iOS 10.0
改用open(_:options:completionHandler:)
方法。示例:
if UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
})
} else {
UIApplication.shared.openURL(url)
}
}
If your app is linked on or after iOS 9.0, you must declare the URL schemes you pass to this method by adding the LSApplicationQueriesSchemes key to your app's Info.plist file. This method always returns false for undeclared schemes, whether or not an appropriate app is installed.
关于ios - openURL 和 canOpenURL 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48048651/
我遇到了一个棘手的问题。 NSURL *url = [NSURL URLWithString:@"numberplate://"]; if([[UIApplication sharedApplicat
我无法快速弄清楚我做错了什么。我在 ipad 上使用下面的代码,每次 if 语句都返回 true。相同/相似的代码在 Objective C 中运行 我的代码: phoneNumber = "5155
所以今天我们收到了一张票,我们的应用程序没有打开谷歌地图,但在我们的应用程序中打开了另一个应用程序 JabJobs 我们检查是否安装了 GoogleMaps 如下: (UIApplication.sh
尽我所能,我无法获得一个简单的应用程序来拨号。 我将一个按钮操作挂接到此函数: @IBAction func wackAMole(sender: AnyObject) { var phoneN
我目前正在更新应用程序并使用 Xcode 7.3。该应用程序使用 iAd 横幅广告和 Flurry 插页式广告。当 iAd 横幅开始加载时,我收到错误消息。 -canOpenURL: failed f
我觉得很奇怪,虽然 canOpenURL(myURL) 是 false 而 open(myURL) 完美地重定向到我想要的应用程序。我在这里做错了什么? override func viewDidAp
我试图用 UIApplication 打开一个 URL,但是当我运行时: [[UIApplication sharedApplication] canOpenURL:urlToUpdate url 是
我正在尝试从部署目标为 8.1 的应用程序中打开 Yelp 我面临的问题是我的代码没有在模拟器上正确评估。我的设备是 iOS 10.3,它在那里运行良好(Yelp 打开),但我需要能够检查它是否适用于
当我使用 canOpenURL 打开通用链接时,(目标应用已安装) canOpenURL 返回 true,但应用程序未打开(LSApplicationQueriesSchemes 未注册) 但如果我使
在 Xcode 7 之前,它运行良好。当我在 Facebook 和 Twitter 上发布类似“myapp://mylink?id=1”的链接以进行社交媒体共享时,用户可以单击它,如果安装了它,它将打
我想在我的应用中打开其他应用, (类似 MDM 的应用程序), 但在 iOS 9 之后, 使用CanOpenURL查询其他应用需要在LSApplicationQueriesSchemes中添加Sche
大家好。 我在我的 iOS 应用程序中使用“Uber”API,当我检查 CanOpenURL 时,它会打印 This app is not allowed to query for scheme ub
知道这是如何实现的吗 appUrl = "http://dum:site2015@jobz.store.com/ if UIApplication.shared.canOpenURL(appUrl!)
我正在使用 canOpenURL 打开设备中安装的应用程序。并添加了 LSApplicationQueriesSchemes 以将方案列入白名单。但是当 canOpenURL 返回 false 时,它
我有两个应用程序通过 openUrl 相互通信。我希望能够在打开第二个应用程序之前检查几项内容。 即App1 想要启动 App2。因此 App2 检查它是否可以打开给定的 URL。如果可以,继续发布。
我在我的应用程序中使用了 CanOpenUrl 方法,它在 iOS 8.4 上运行,但是当我将模拟器更改为 9.2 时,它无法运行。我找不到原因。这些是我的代码; if([[UIApplication
我已按照 iOS 9 的要求将我的 URL 方案添加到 Info.plist。但是,调用会导致: -canOpenURL: failed for URL: "scheme://" - error: "
我需要在 safari 浏览器中打开一个链接,但我有疑问,我应该使用哪种方法? openURL/open 或 canOpenURL。谁能帮我解释一下这两种功能之间的实际区别是什么? if #avai
我正在尝试将 Instagram 网址添加到我在 iOS9 中的应用程序,但我收到以下警告: -canOpenURL: failed for URL: "instragram://media?id=M
我使用 UIApplications 的 canOpenURL 来检查设备是否可以使用“tel:”方案调用电话,但当应用程序在 iPhone 上运行时返回 YES WITHOUT sim,在本例中,手
我是一名优秀的程序员,十分优秀!