iOS 9 通用链接转发按钮永远中断深度链接,直到我删除手机设置

标签 ios xamarin uiwebview ios9 ios-universal-links

在任何人将此问题标记为重复之前请阅读底部的额外部分,了解此问题与其他类似问题之间的差异 em>

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

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

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

我的问题

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

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

我的问题与 SO 上的类似问题的区别:

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

enter image description here

最佳答案

您完全正确:前进按钮是 可怕的 UI/UX。这是 this blog post 中确定的通用链接的重大缺陷之一。 .没有办法禁用前进按钮,一旦它被触发,你就完蛋了。

在关闭后重新启用通用链接行为的最简单方法是长按链接。但是,如果您的链接被系统基于其他一些标准(更多详情见下文)禁用,那将不起作用。获得清晰镜头的最佳选择是将通用链接 URL 粘贴到股票 Notes 应用程序中,然后尝试从那里长按它。

回答您的一些其他问题:

  • 通用链接确实UIWebView ( per Apple's docs ) 中工作。 SafariViewController 不是必需的。
  • 在某些情况下,通用链接在系统级别被禁用。有一个 list here ,但这是我想到的可能适用于这种情况的主要方法:

Universal Links will not work with a user driven element click on the same domain. Example: if there is a Universal Link on google.com pointing to a different Universal Link on google.com, it will not open the app.

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

关于iOS 9 通用链接转发按钮永远中断深度链接,直到我删除手机设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171239/

相关文章:

ios - Swift 4.2 中的 Webview 应用程序

ios - AppDelegate 中的 PushingViewController 无法识别的选择器实例

iphone - 在 objective-c 中以编程方式设置属性值

iOS 6 addAnnotation EXC_BAD_ACCESS,但在 iOS 7 上没问题

c# - Xamarin iOS C# 从 UIWebView 在 Safari 中打开链接

swift - 使用webview后如何使用segue?

objective-c - TPMultiLayoutViewController的ARC转换; ARC不允许将Objective-C指针隐式转换为“const void *”

c# - xamarin android 按钮点击不起作用

ios - 在 iPhone 上调试 iOS 应用程序时遇到问题

ios - 将嵌入的 URL 加载到 UIWebView