- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有两个应用程序通过 openUrl 相互通信。我希望能够在打开第二个应用程序之前检查几项内容。
即App1 想要启动 App2。因此 App2 检查它是否可以打开给定的 URL。如果可以,继续发布。如果不能,则停止启动并在 App1 上显示错误。
iOS 似乎已经有了这个功能,但我不知道如何让它工作。
这是来自 App1 的示例代码,它将启动 App2。
let url = URL(string: "APP2://Screen1")
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: { _ in })
} else {
self.showError("Couldn't Open App2")
}
这是尝试接受 URL 的 App2 示例代码。
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
guard options[.sourceApplication] as? String == "com.test.app1" else { return false }
if self.canLogInFrom(url) {
return true
else {
return false
}
如果我返回 false,它仍然会继续启动。无论我在此函数中返回什么,它都会启动 App2。
App2 中有没有一种方法可以实现 AppDelegate CanOpenURL 函数?
最佳答案
App1 只能检查 App2 是否已安装,是否可以启动启动以及初始启动是否成功。
App1 无法获取App2 的application(_:open:options:)
方法中使用的结果。
您唯一的选择是让 App2 转身并使用告诉 App1 启动因某种原因失败的 URL 启动 App1。
关于ios - 覆盖 canOpenUrl(_ :) AppDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638507/
我遇到了一个棘手的问题。 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,在本例中,手
我是一名优秀的程序员,十分优秀!