iOS9 URL Scheme返回启动应用程序

时间:2016-05-27 09:34:40

标签: ios url ios9

iOS9对URL方案的工作方式进行了一些更改,例如: url whitelist等。在iOS9之前,我们允许我们的应用程序从另一个应用程序启动,执行一些操作,然后将控制权返回到启动应用程序,结束一些自定义数据,使启动应用程序能够导航到特定(成功或失败)视图

启动app动作的返回控制是通过后续的openURL:call来指定启动应用程序的url,并返回要返回的数据。这在iOS8中都非常好用,但在iOS9中,我们现在有了#34;回到appName"状态栏中的按钮作为返回启动应用程序的推荐方式。不幸的是,这不允许我们从我们的应用程序返回任何结果数据。如果我们继续使用openURL:将控制权返回到iOS9中的启动应用程序,则会导致启动应用程序中出现相同的状态栏按钮"返回到我们的应用程序",这是完全错误的。

所以,问题是我们如何将控制权从iOS 9中的结果数据启动应用程序返回到应用程序?

1 个答案:

答案 0 :(得分:0)

对于Deeplinking,我使用了第三方分支

在AppDelegate中,这由下面的两个UIApplicationDelegate处理

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    NSLog(@"opened app from URL %@", [url description]);
    return [[Branch getInstance] handleDeepLink:url];
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler {

    BOOL handledByBranch = [[Branch getInstance] continueUserActivity:userActivity];
    return handledByBranch;
}

Reference Link for Deeplinking