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

时间:2012-01-26 18:03:35

标签: iphone ios cocoa-touch url-scheme custom-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启动应用程序。我可以吗?

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

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

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

当您解码caller部分时,您会收到字符串app2://blabla,然后您可以再次打开openURL:以“回拨”。