在任何人将此问题标记为重复 之前,请阅读底部的额外部分,此问题与其他类似问题之间的网站差异
我正在利用通用链接来满足我的深层链接需求。两个示例用例是:
1。)安装了我的应用程序的iPhone上的Safari / Chrome浏览器:当点击iPhone上我网站上的链接时,如果安装在手机上,我会将它们深入链接到我的应用程序中。
2.)安装我的应用程序,运行我的应用程序,但使用应用程序UIWebView。我的应用程序还有一个应用内UIWebView,当您点击一个按钮时,它会将它们深层链接到应用程序中的某个位置。
在深入链接到应用程序后,导航栏中有两个按钮。后退按钮(左上)和前进按钮(右上)。
我的问题
如果用户按下前进按钮(右上角),它会将它们转发到我的网页,然后将永远破坏我的深层链接,以便将来当用户点击该链接进行深层链接时,它始终会转到我的网页,而不是深入链接到应用程序(这是最初的意图)。我怎么能阻止这个?我担心的是我的应用程序在右上角有关闭按钮,如果用户试图点击关闭按钮,他们可能会意外地点击前进按钮并永远打破深度链接。我已尝试清除浏览器缓存,但我已尝试删除并重新安装我的应用。但没有什么能够解决问题。通过前进按钮永久禁用深度链接。我能让它再次运行的唯一方法是重置设备并删除所有内容和设置。
我的问题与SO上的类似问题之间存在差异:
Similar SO question但在这里他们说用户可以长按“通用链接”#34;并弹出行动表,要求您打开"打开"。我已经尝试过以上情况1.)并且我的应用程序没有显示在选项中。请参见下面的附件截图对于上述情况2,这根本不起作用。)。如何获得使用iOS WebViewController的Universal链接?我必须使用SafariViewController吗?在这种情况下,我不想在我的应用程序中使用SafariViewController,因为我不想拥有SafariViewController所具有的顶级导航栏。
答案 0 :(得分:1)
你说得对:前进按钮是可怕的 UI / UX。这是this blog post中确定的Universal Links的一大缺陷。没有办法禁用前进按钮,一旦它被触发,你就被搞砸了。
关闭后重新启用Universal Linking行为的最简单方法是长按链接。但是,如果您的链接被系统基于其他一些标准禁用(下面有更多详细信息),那么这不起作用。获得干净利落的最佳选择是将Universal Link URL粘贴到库存Notes应用程序中,并尝试从那里长按。
回答其他一些问题:
UIWebView
(per Apple's docs)内工作。不需要SafariViewController
。Universal Links无法使用用户驱动的元素点击同一个域。示例:如果google.com上的通用链接指向google.com上的其他通用链接,则无法打开该应用。
Open in [app]
选项的原因。答案 1 :(得分:0)
您无法禁用该按钮以打开网站,但您可以在另一个方向创建路径:在网站上使用smart banner,当用户点按“打开”(或本地化的等效内容)时,将被恢复到您的应用程序,这也将重置默认为在您的应用程序而不是Safari中打开通用链接。