iOS Universal Links有时会停止工作

Eya*_*yal 4 deep-linking ios ios-universal-links

我的应用程序支持通用链接,在大多数情况下,它可以正常工作,点击链接可以打开应用程序.

但有时候,我不确定为什么,它会停止工作.

它发生了几次给一个用户,点击链接停止打开应用程序,而是打开网络.
从那一刻起,你无能为力,让它再次发挥作用.

我知道如果你点击状态栏右上角的链接,它会禁用通用链接,从那一刻开始点击链接就会打开网页.要重新启用通用链接,您可以点击Notes App上的链接(例如),然后点击"在MyApp中打开"按钮.

但这似乎并非如此,用户告诉我他没有按状态栏上的链接,更奇怪的是,当试图通过点击Notes App中的链接重新启用通用链接时,"打开" MyApp"按钮丢失了.

什么可能导致这个问题?

Oss*_*sir 9

根据我以前的经验,它可能由于各种原因而发生:

  • 最有可能:apple-app-site-association用户无法使用,或者提供不安全的连接.以下是此类问题的可能来源,我相信还有其他问题:
    • 用户没有互联网或连接到您网站apple-app-site-association上的网站/文件.即使它应该重定向到您的应用程序,通用链接功能需要在现场检查此文件的存在.它是第一次在应用程序安装时完成,每次打开链接时(我在iOS10.3上查看了Charles).请注意,它不会等待检查完成,并根据之前的检查显示或不显示"在MyApp中打开"按钮.即使用户上网,您的网站也可能被防火墙或其他东西阻止.
    • 用户可以访问apple-app-site-association文件,但是他可以从网络或通过代理访问它,要求您接受某些证书以解密您的HTTPS访问.因此,您的HTTPS流量变得不安全.iOS会检查该apple-app-site-association文件并对其进行验证.
    • 用户现在可以访问apple-app-site-association具有良好安全连接的文件,但之前的访问由于以前的原因而失败 - >用户将不会看到此次打开的应用程序或上下文菜单中的"在MyApp中打开"按钮,原因我之前描述过.如何解决?不知道,只是一直尝试几次.
  • 你已经拒绝了这个选项,但仅限于未来的读者.如果用户点击带有站点名称的右上角按钮 - 所有未来的转换都会将用户重定向到Safari而不是您的应用,直到用户再次点击此按钮.基本上,iOS保存了最后的用户选择.

还有很多其他原因导致无法正常工作,但在这些情况下,将会有100%的特定步骤进行重现,例如对某些/path或调试/发布候选或测试服务器无效.这似乎不是你的情况所以我不会在这里介绍它.

有用的链接(相当多的重复,但如果你卡住,重复它是值得的):