我该如何在iOS应用中实现延迟深度链接?

9
我希望在我的iOS应用程序中实现延迟深度链接,作为跟踪推荐的手段。当我的应用程序用户想要引荐朋友时,我会生成一个具有独特推荐代码的URL。当其他人收到链接并打开它时,我希望它可以将他们带到我的应用程序在App Store中的页面。然后,如果他们安装了我的应用程序,在第一次打开时,我需要一种方法从原始URL中读取推荐代码。
我在网上找到了很多关于延迟深度链接的页面,但没有一个真正解释如何做到这一点。相反,这些页面最终都告诉你安装某些第三方代码或使用某些商业服务。这不是我想要的。我想学习如何自己完成这个任务。
有很多旧页面建议使用复杂和容易出错的解决方案,比如跟踪用户的IP地址,将推荐代码放入剪贴板中,或者从Web视图中的Cookie中获取它。我认为这些不是2022年所应该使用的正确解决方案。
如果有人能推荐适当的资源,我会很感激。
如果苹果公司根本不希望我们这样做,并且不提供任何支持,那么我也想知道。我原本以为他们会提供支持,但也许我错了。
谢谢, 弗兰克
2个回答

4

好消息是,我找到了一个解决方案。我可以构建一个网页,将用户重定向到应用商店,但在此之前,将一些文本复制到他们的剪贴板中(不告诉他们或要求他们做任何事情)。然后,如果他们安装我的应用程序,我可以通过从剪贴板粘贴来获取文本。我测试了这个想法,它有效。

坏消息是,从iOS 16开始,苹果现在会要求您允许粘贴。因此,如果您尝试这样做,您的用户将启动您的应用程序,并立即收到一个消息,要求他们允许从Safari粘贴。我预计大多数用户会拒绝请求,仅仅看到它就会磨损他们对应用程序的信任(我知道我不会相信一个试图在没有直接命令的情况下消耗我的剪贴板的应用程序)。


是的,看起来唯一的方法就是要求用户在您的网页上按下按钮复制凭据,然后在移动应用程序中提到您将使用一个剪贴板来粘贴凭据。 - Sergey Kopanev

-1

苹果的通用链接允许这样做(会理解典型URL方案和通用链接之间的差异作为门槛)。这假设您愿意在服务器端进行一些工作以及在iOS侧面的其他障碍,主要是行政方面的。

通用链接和服务器端工作的好处是,如果用户没有安装应用程序,则提供备用网页。由于应用程序应该在下载后打开,因此您通常只需从此URL重定向到应用商店。在这种情况下,在任何重定向之前,您可以执行操作以解码传递在URL中的唯一参数,并将其保留在远程数据存储中。编码的数据需要在您的注册期间被要求并可验证地唯一--电子邮件似乎是理想的。

如果可行,您的标准注册流程可能需要电子邮件验证,并将应用程序链接作为强制入口点(考虑Slack魔术链接)。当用户提交他/她的电子邮件进行验证时,您可以首先检查该电子邮件是否与上述流程保存的任何先前解码的推荐相匹配。如果是这样,您可以为此电子邮件生成一个唯一的链接,指向您的应用程序,并使用参数来指导延迟/深度链接。


我不知道我的服务器在处理URL并发送重定向的时候如何得知用户的电子邮件地址。该URL将来自某人的推荐。那个人没有被要求输入被推荐人的电子邮件地址。即使他们这样做了,那个人最终可能会用不同的地址注册。 - Flarosa
我的基本理解是,如果您使用自定义URL方案向未安装应用程序的iOS发送请求,它将缓存该URL,并在稍后安装该应用程序时将其传递给该应用程序。这仍然准确吗? - Flarosa
非常抱歉——关于您的系统要跟踪的确切内容,我的理解出现了一些混淆。如果有任何缓存,那么这似乎是微不足道的,而且我期望文档中应该有所记录。几年前,我在一个团队中成为了深度链接专家--但我想不起来有类似的东西了。话虽如此,顺带提一句,我记得运行Charles/MITM可以帮助显示设备上与所有这些相关的网络活动(调试头痛)。这可能是一个开始的地方。祝您好运,并有兴趣看看是否存在像您建议的缓存解决方案。 - Greg Brodzik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接