Question

I'm working on an app that manages my own URL scheme so I implement the callback:

- (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...

It works very nice but I need to launch the caller application (i.e. the app that opened the URL). So my question here is, is it possible?

I have been playing with UIApplicationLaunchOptionsSourceApplicationKey but I can't launch back the app by its application Bundle ID. Can I?

I have also tried the undocumented launchApplicationWithIdentifier: of UIApplication, but I need a real solution and it seems that workaround only works in the Simulator.

Any ideas? Thank you!

Was it helpful?

Solution

The only way would be to have both apps each support a custom URL scheme. Then you embed the caller URL in the URL of the other app.

For example, let's say App2 wants to call App1 in a way so that App1 could then "call back" to App2. It would create and open an URL like this:

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

When you decode the caller part you would get back the string app2://blabla which you could then again open with openURL: to "call back".

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top