如何防止浏览器重定向产生深层链接循环(再次打开移动应用程序)?

mal*_*tte 5 android objective-c ios ios-universal-links android-deep-link

我们有一个移动应用程序和一个网站。用户会收到包含网站页面链接的电子邮件。我们使用 iOS 通用链接和 Android 应用程序链接将移动应用程序与网站关联起来。

假设电子邮件中的链接是https://abc/ticket/1234。当用户点击链接时,它会在移动应用程序中打开相关页面。用户可以通过点击移动页面中的按钮来打开网站中的相同内容。它会打开网站中的相关页面。我们不直接打开URL https://abc/ticket/1234。这是因为用户首先通过 IDP 进行身份验证,然后重定向到正确的页面。URL 类似于https://abc.idp?token=xyz&redirect=https://abc/ticket/1234

这就是问题所在。

  1. 用户点击电子邮件中的链接https://abc/ticket/1234 。
  2. 移动应用程序页面打开。
  3. 用户点击移动页面中的“在门户中打开”按钮。
  4. https://abc.idp?token=xyz&redirect=https://abc/ticket/1234在浏览器中打开。(这是因为用户应该首先通过 IDP 进行身份验证。)
  5. 几秒钟后,用户获得身份验证,浏览器将重定向到https://abc/ticket/1234
  6. 移动应用程序再次打开<---我们不希望这样。我们需要在浏览器本身中打开它。

简而言之,

我们需要告诉操作系统是否从同一链接打开应用程序或浏览器。

我们考虑使用 URL https://abc/ticket/1234?do_not_open_mobile_app=true传递附加参数,但无法在 apple-app-site-association 文件中使用查询参数进行 URL 比较。然后我们尝试为 IDP 启用深度链接,然后它在 Android 中运行良好,但在 iOS 中却不行。

非常感谢您的投入。