【问题标题】:iOS: Apple Universal Link continueUserActivity method doesn't call if the app is not installed?iOS:如果未安装应用程序,Apple Universal Link continueUserActivity 方法不会调用?
【发布时间】:2017-04-22 00:17:43
【问题描述】:

我正在使用 Apple 通用链接概念在我的应用程序中的 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;
}

【问题讨论】:

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


    【解决方案1】:

    对于此类任务,您需要创建后端,例如在点击该链接时为该特定设备创建一个会话,当应用程序打开时,在后台调用一个 API,该 API 将检查该设备的会话,然后将响应参数。在上述情况下,您将需要管理很多事情。如果您不介意使用第三方,请选择Branch.io,他们会处理您想要的所有类型的东西,并且不会给开发带来麻烦。

    【讨论】:

    • 感谢您的回复。因此,如果我们从苹果商店安装应用程序并从商店打开它,则不会调用 continueUserActivity 方法。
    • @GaneshGuturi 是的,除非您明确处理它,否则它不会在您的情况下被调用。
    • 为了进一步澄清,continueUserActivity 方法仅在通过通用链接或 Spotlight 打开应用程序时调用。由于必须已经安装了应用程序才能使用这些选项中的任何一个,根据定义,如果用户必须先下载应用程序,则不会调用 continueUserActivity
    猜你喜欢
    • 1970-01-01
    • 2022-07-29
    • 2019-06-12
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2020-06-23
    相关资源
    最近更新 更多