我们有一个移动应用程序和一个网站。用户会收到带有网站页面链接的电子邮件。我们使用 iOS 通用链接和 Android 应用程序链接将移动应用程序与网站相关联。
假设电子邮件中的链接是https://abc/ticket/1234。当用户点击链接时,它会在移动应用程序中打开相关页面。用户可以通过点击该移动页面中的按钮在网站中打开相同的内容。它会打开网站中的相关页面。我们不直接打开 URL https://abc/ticket/1234。这是因为用户首先通过 IDP 进行身份验证,然后重定向到正确的页面。URL 类似于https://abc.idp?token=xyz&redirect=https://abc/ticket/1234。
这是问题所在。
- 用户点击电子邮件中的链接https://abc/ticket/1234。
- 移动应用页面被打开。
- 用户点击移动页面中的“在门户中打开”按钮。
- https://abc.idp?token=xyz&redirect=https://abc/ticket/1234在浏览器中打开。(这是因为用户应该首先通过 IDP 进行身份验证。)
- 几秒钟后,用户通过身份验证,浏览器被重定向到https://abc/ticket/1234
- 再次打开移动应用程序 <--- 我们不希望这样。我们需要在浏览器本身中打开它。
简而言之,
我们需要告诉操作系统是从同一个链接打开应用程序还是浏览器。
我们曾考虑使用 URL https://abc/ticket/1234?do_not_open_mobile_app=true传递一个附加参数,但在 apple-app-site-association 文件中无法使用查询参数进行 URL 比较。然后我们也尝试为 IDP 启用深层链接,然后它在 Android 中运行良好,但在 iOS 中却不行。
非常感谢您的投入。