iOS:Apple Universal Link continueUserActivity方法如果未安装应用程序则不会调用?

时间:2016-12-07 06:37:44

标签: ios objective-c iphone ios9 ios-universal-links

我正在使用Apple Universal Links概念在我的应用中的continueUserActivity方法内读取/获取共享链接或URL(用户通过消息,电子邮件和其他社交应用点击它)。

如果用户点击了链接并且该应用已安装在设备上,则会调用continueUserActivity方法并正常工作。

如果用户点击链接并且设备上未安装该应用,那么该链接会自动重定向到Apple Store以安装应用(使用javascript),安装应用后如果打开它,则continueUserActivity方法根本不打电话。如果您从Apple Store安装应用程序并打开它,continueUserActivity方法是否会调用?我错过了什么吗?请帮帮我。

我正在使用iOS 9.3.1

在设备上对其进行测试
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * restorableObjects))restorationHandler {

  if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

    if ([[userActivity.webpageURL absoluteString] hasSuffix:@"12345"]) {

        // Open Item details view controller
    }
  }
  return YES;
}

1 个答案:

答案 0 :(得分:8)

对于这类任务,您需要创建后端,例如在点击该链接时为该特定设备创建会话,当应用程序打开时,在后台调用API,检查该设备的会话,然后将响应参数。在上述情况下,您需要管理很多事情。如果你不介意使用第三方,那么去Branch.io他们会处理你想要的所有东西,不会造成开发的痛苦。