iOS - 通用链接的Bug

时间:2016-05-22 01:14:16

标签: ios deep-linking ios-universal-links

我已经在我的iOS应用中完全按照此处列出的步骤设置了Universal Links:

How to Set Up Universal Links

使用Branch和Apple验证器成功验证100%。但是现在我正在尝试测试成品,我遇到了麻烦。

如果我输入或点击指向我网站的链接(例如www.mydomain.com),Safari / Chrome / Facebook会直接进入我的网站。

但是,如果我去Google,请在搜索中输入www.mydomain.com,找到指向我网站的链接,然后长按链接,“在MyApp中打开”是其中一个选项并且运行正常。< / p>

这是为什么?我拔出头发了!

1 个答案:

答案 0 :(得分:18)

遗憾的是,Universal Links无处不在。来自this page

  • 消息 |原理
  • 邮件 |原理
  • Whatsapp |原理
  • 松弛 |如果它设置为打开Safari,而不是应用内浏览器(使用SFSafariViewController)
  • Safari |有条件地工作
  • Chrome |有条件地工作
  • Google |有条件地工作
  • Gmail |如果安装了Chrome,则会在Chrome(不是Universal Link)中打开链接。否则,有条件地工作
  • 收件箱 |如果安装了Chrome,则会在Chrome(不是Universal Link)中打开链接。否则,工作。
  • Twitter |有条件地工作
  • Facebook |有条件地工作
  • FB Messenger |有条件地工作
  • 微信 |有条件地工作
  • Pinterest |
  • 电报 |不工作(使用SFSafariViewController)

注意:有条件地工作意味着它可以在某些时候起作用(即,打开应用程序):

  • 如果您将链接粘贴到浏览器网址字段中,则无法使用通用链接。
  • Universal Links使用用户驱动的<a href="...">元素点击跨域。示例:如果google.com上有一个指向bnc.lt的通用链接,它将打开该应用。
  • Universal Links无法使用用户驱动的<a href="...">元素点击同一域。示例:如果google.com上的通用链接指向google.com上的其他通用链接,则无法打开该应用。
  • 无法通过Javascript(window.onload或通过.click()元素上的<a>调用)触发通用链接,除非它是用户操作的一部分。
  • Google,Gmail,收件箱,Twitter,Facebook,FB Messenger,微信 - 通用链接仅在您已打开网页视图时才有效。换句话说,它们不能在Feed / main视图中在应用程序中工作。同样,他们必须是跨域的,如果您的用户在yourapp.com上并且也为yourapp.com点击了Universal Link,它将无法工作。但是,从yourapp.com点击到bnc.lt将触发链接以用作通用链接并直接打开您的应用。