如何启动打开自定义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:
“回调”。