繁体   English   中英

如何在 iOS 应用程序中实施延迟深度链接?

[英]How do I implement deferred deep linking in an iOS app?

我想在我的 iOS 应用程序中实施延迟深度链接,作为跟踪推荐的一种方式。 当我的应用程序的用户想要推荐朋友时,我将生成一个具有唯一推荐代码的 URL。 当其他人收到链接并打开它时,我希望它会将他们带到 App Store 中我的应用程序页面。 然后,如果他们安装我的应用程序,当它第一次打开时,我需要一种方法让它从原始 URL 读取推荐代码。

我在 web 上找到了很多关于延迟深度链接的页面,但没有一个真正解释如何去做。 相反,这些页面最终都会告诉您安装一些第三方代码或使用一些商业服务。 这不是我所追求的。 我想自己学习如何做。

有很多旧页面推荐复杂且容易出错的解决方案,例如跟踪用户的 IP 地址,将推荐代码放入剪贴板,或者以某种方式从 web 视图中的 cookie 中获取它。 我不认为这些是 2022 年可以使用的正确解决方案。

如果有人可以推荐合适的资源,我将不胜感激。

如果 Apple 根本不希望我们这样做并且不提供任何支持,那么我也想知道。 我的印象是他们这样做了,但也许我错了。

谢谢,弗兰克

Apple 的通用链接允许这样做(将典型的 URL 方案和通用链接之间的区别理解为阈值)。 这假设您愿意在 iOS 端做一些提升服务器端以及其他障碍,主要是管理。

Universal Links 和服务器端工作的一个好处是,如果用户没有安装该应用程序,您将获得一个后备网页。 由于应用程序应该在下载后打开,您通常可以从这个 URL 重定向到应用程序商店。在这种情况下,在任何重定向之前,您可以执行一个操作来解码 URL 中传递的唯一参数并将其保存在一个远程数据存储。 编码的数据需要在您的注册过程中被要求并且是唯一的——email 似乎是理想的。

如果可行,您的标准注册流程可能需要 email 验证,并将应用程序链接作为强制性入口点(想想 slack 魔术链接)。 当用户提交他/她的 email 进行验证时,您可以首先根据您的数据存储检查 email,看看它是否映射到从上面的流程中保存的任何先前解码的引用。 如果是这样,您可以为此 email 生成一个指向您的应用程序的唯一链接,并使用将指向延迟/深层链接的参数。

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

坏消息是,从 iOS 16 开始,Apple 现在要求您获得粘贴权限。 因此,如果您尝试这样做,您的用户将启动您的应用程序并立即获得晋升,并收到一条消息,要求他们允许来自 Safari 的粘贴。我预计大多数用户会拒绝该请求,而仅仅是他们看到它的事实就会削弱他们的信任在应用程序中(我知道我不会相信在没有我的直接命令的情况下尝试使用我的剪贴板的应用程序)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM