如何启动打开自定义URL方案的应用程序?

我正在开发一个管理我自己的URL方案的应用程序,所以我实现了回调:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions { // Get our launch URL if (launchOptions != nil) { // Launch dictionary has data NSURL* launchURL = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey]; // Parse the URL NSString* hostString = [launchURL host]; blah blah blah... 

它工作得很好,但我需要启动调用者应用程序(即打开URL的应用程序)。 所以我的问题是,有可能吗?

我一直在使用UIApplicationLaunchOptionsSourceApplicationKey但我无法通过其应用程序Bundle ID启动应用程序。 我可以吗?

我还尝试了UIApplication的未记录的launchApplicationWithIdentifier:但我需要一个真正的解决方案,似乎解决方法只适用于模拟器。

有任何想法吗? 谢谢!

唯一的方法是让两个应用程序都支持自定义URL方案。 然后,您将调用者URL嵌入到另一个应用程序的URL中。

例如,假设App2想要以某种方式调用App1,以便App1可以“回调”到App2。 它会创建并打开一个这样的URL:

 app1://?caller=app2%3A%2F%2Fblabla 

当您解码caller部分时,您将返回字符串app2://blabla ,然后您可以使用openURL:再次打开openURL: “回调”。