3

在有人将此问题标记为重复之前,请阅读底部的额外部分,该部分列出了该问题与其他类似问题之间的差异

我正在使用通用链接来满足我的深层链接需求。两个示例用例是:

1.) 安装了我的应用程序的 iPhone 上的 Safari/Chrome 浏览器:当在他们的 iPhone 上点击我的网站上的链接时,如果他们的手机上安装了我的应用程序,我会将它们深度链接到我的应用程序中。
2.) 安装我的应用程序后,运行我的应用程序但使用应用内 UIWebView。我的应用程序还有一个应用程序内 UIWebView,当您点击一个按钮时,它会将它们深层链接到应用程序的某个位置。

深度链接到应用程序后,导航栏中有两个按钮。后退按钮(左上)和前进按钮(右上)。

我的问题

如果用户按下前进按钮(右上角),它会将它们转发到我的网页,然后将永远破坏我的深层链接,以便将来当用户单击该链接到深层链接时,它总是会转到我的网页而不是深度链接到应用程序(这是最初的意图)。我怎样才能防止这种情况?我在这里担心的是我的应用在右上角有关闭按钮,如果用户试图点击关闭按钮,他们可能会不小心点击前进按钮并永远中断深度链接。我试过清除我的浏览器缓存,我试过删除并重新安装我的应用程序。但是在被前进按钮永久禁用后,没有什么可以“修复”深层链接。我可以让它再次工作的唯一方法是进行完整的设备重置并擦除所有内容和设置。

这是深度链接到应用程序后后退和前进按钮的图像。

我的问题与关于 SO 的类似问题之间的区别:

类似的 SO 问题但是这里他们说用户可以长按“通用链接”,然后会弹出操作表,要求您“打开”。对于上述情况 1,我已经尝试过此操作。)并且我的应用程序未显示在选项中。请参阅下面的附加屏幕截图。对于上述情况2,这根本不起作用。)。如何获得通用链接以使用 iOS WebViewController?我必须使用 SafariViewController 吗?对于这种情况,我不想在我的应用程序中使用 SafariViewController,因为我不想拥有 SafariViewController 拥有的顶部导航栏。

在此处输入图像描述

4

2 回答 2

1

你是绝对正确的:前进按钮是可怕的UI/UX。这是这篇博文中提到的通用链接的一大缺陷。没有办法禁用前进按钮,一旦触发,你就完蛋了。

关闭后重新启用通用链接行为的最简单方法是长按链接。但是,如果您的链接被系统基于其他一些标准禁用(下面有更多详细信息),这将不起作用。您最好的选择是将通用链接 URL 粘贴到股票 Notes 应用程序中,然后尝试从那里长按它。

要回答您的其他一些问题:

  • 通用链接确实UIWebView根据 Apple 的文档)内工作。ASafariViewController不是必需的。
  • 在某些情况下,通用链接在系统级别被禁用。这里有一个列表,但这是我想到的可能适用于这种情况的主要列表:

通用链接不适用于用户驱动的元素单击同一域。示例:如果 google.com 上的通用链接指向 google.com 上的不同通用链接,则它不会打开应用程序。

  • 您的第二个示例图片来自 Chrome。通用链接应该(有条件地)在 Chrome 中工作,但链接是否指向与您已经加载的页面相同的域?如果是这样,这就是您没有看到该Open in [app]选项的原因。
于 2016-05-12T04:37:00.063 回答
0

您不能禁用打开网站的按钮,但可以在另一个方向创建路径:在网站上使用智能横幅,当用户点击“打开”(或本地化的等效项)时,他们将被带回您的应用程序,这还将重置默认设置为在您的应用程序而不是 Safari 中打开通用链接。

于 2016-05-13T13:39:08.020 回答