通用链接:如何以编程方式返回?

时间:2018-05-30 19:16:25

标签: ios swift redirect ios-universal-links associated-domains

我有一个第一个iOS原生应用程序(比如说“来电应用程序”)打开第二个(比如说“callee app”),其网址为Widget(通用链接)。我希望用户在“被调用者应用程序”中执行某些任务,完成后我想回到自动到“调用者应用程序”,提供此类任务的结果(URL将是类似于https://calleeapp.com)。

处理此问题的最佳/适当方式应该是什么?

1 个答案:

答案 0 :(得分:0)

我们,您需要能够在被叫方和来电应用上都有代码才能执行此操作。 (除非第三方应用程序为回调URL实现某种API)。

虽然您想查看以下AppDelegate方法,但仍在调用者应用中:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    // if it opened the app from some link
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
        // the query will give you "result=xxxx"
        if let query = userActivity.webpageURL?.query {
             // code that pulls out the result from the string you get back
        }
     ...

您还必须确实支持通用链接,确保您的AppName.entitlements具有关联域密钥,其中一个值为applinks:callerapp.com,以便调用者应用知道它可以打开网址那个计划。 (反之亦然,如果你还要实施那个,那就是被调用者应用程序)