如果iOS设备上未安装应用程序,则通用链接无效

时间:2017-11-22 12:01:50

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

我在我的应用程序和服务器端实现了通用链接。安装应用程序后,一切正常。如果设备上没有安装应用程序,我点击说明或邮件的通用链接,我会被重定向到我可以下载应用程序的应用程序商店。但是,在下载完成时,如果我在应用程序商店页面中单击“打开”,则不会调用下面的应用程序委托方法:

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

因此,我无法执行某些操作以响应应用程序运行或以前安装在设备上时通常会得到的userActivity.webpageURL。这是正常的行为吗?即如果未安装该应用,通用链接将仅作为从应用商店安装应用的媒介?

2 个答案:

答案 0 :(得分:9)

唯一的方法,您可以通过设备指纹识别机制来实现这一点。这就是像Branch,Adjust,GetSocial,Appsflyer,Tune,Kochava等提供商执行上下文深层链接,延迟深层链接,归因和跟踪的方式。

如果您不想使用上述任何提供商,并且您只想要一个非常基本的设备指纹识别机制,那么您只能使用IP地址。 This是Tune关于归因的不同方法的一篇非常好的文章。

(免责声明:我是GetSocial的创始人)

答案 1 :(得分:5)

这正是通用链接应该如何工作的。 如果用户没有您的应用,则下载是一个全新的会话,而不是持续的用户活动。

我相信branch.io提供了一个SDK,可以保证新安装的连续性。

修改

好的,我做了一些挖掘,这称为延迟深度链接。 它没有得到Apple Universal链接的正式支持。

但这里基本上是分支如何做到的:

  • 当新用户访问您的网站时,您会在该网站中存储一个唯一的令牌 饼干为您的网站。
  • 然后,当第一次打开应用程序时,您会检查它 使用SafariServices的令牌
  • 如果存在令牌,请运行连续性代码。

这里有一个更详细的article关于iOS中的所有链接类型。