gpt4 book ai didi

ios - 我什么时候可以使用带有通用链接的 SFSafariViewController、WKWebView 或 UIWebView?

转载 作者:IT王子 更新时间:2023-10-29 08:03:52 24 4
gpt4 key购买 nike

Universal LinksiOS App Search Programming Guide ,苹果说:

If you instantiate a SFSafariViewController, WKWebView, or UIWebView object to handle a universal link, iOS opens your website in Safari instead of opening your app. However, if the user taps a universal link from within an embedded SFSafariViewController, WKWebView, or UIWebView object, iOS opens your app.

“处理通用链接”是什么意思?我永远不能用 SFSafariViewControllerWKWebViewUIWebView 打开给定的 URL 吗?它仅适用于 -[UIApplicationDelegate application:continueUserActivity:restorationHandler:] 期间,还是存在超时?这是否意味着我们永远无法在 SFSafariViewControllerWKWebViewUIWebView 中打开 URL?

最佳答案

我不确定我是否完全理解您的问题。

只是为了介绍基础知识,我将允许 Apple 解释 what a Universal Link is :

Universal links let users open your app when they tap links to your website within WKWebView and UIWebView views and Safari pages, in addition to links that result in a call to openURL:, such as those that occur in Mail, Messages, and other apps.

基本上,假设您正在使用 Twitter 客户端,并浏览时间线,您会遇到一 strip 有以下 YouTube 视频链接的推文:https://youtu.be/ejQod8liXm0

如果您点击它,因为它是一个 HTTP URL,您会希望 Safari 打开该链接。但是,我认为我们所有 iOS 开发者几乎都同意 native 应用更好这一事实,因此更好的用户体验将是官方 YouTube 应用打开视频,甚至来自您的第三方客户端。

这是“通用链接”所允许的;如果 YouTube 应用程序在 iOS 上将自己注册为负责处理 https://www.youtube.com 的应用程序(*) 链接,如果我们遵守 API 规则,iOS 生态系统中的每个人都会受益。如果你运行一个网站并且你希望你的任何内容触发你的官方 iOS 应用程序打开,如果你的用户安装了它,或者如果用户想要安装它以获得更好的用户提示,也会发生同样的事情经验(当然对您的业务有帮助)。

所以,抛开所有这些,让我们回到原文:

If you instantiate a SFSafariViewController, WKWebView, or UIWebView object to handle a universal link, iOS opens your website in Safari instead of opening your app. However, if the user taps a universal link from within an embedded SFSafariViewController, WKWebView, or UIWebView object, iOS opens your app.

这意味着,如果您的用户在您的应用中点击指向您内容的通用链接(例如:http://www.your-company.com/foo),而您没有通过正则表达式等方式在您的应用代码中检测到这一点,并且而是实例化一个 SFSafariViewController , WKWebViewUIWebView打开它,就好像它是指向 The New York Times 的常规链接一样或其他什么,操作系统会理解您希望 Safari 为您处理,而不是在您的应用程序中打开它。 记住:Universal Links 的全部目的是让用户获得更好的体验,让 URL 由 native 应用程序处理,而不是由浏览器处理。

这是第一句话说的。至于第二个,它清除了一个潜在的后续问题:如果用户从嵌入式浏览器从另一个不是我的应用程序点击我的内容的通用链接怎么办?然后,句子说,操作系统将正常运行:它将打开您的应用程序,遵守通用链接规则。

TL;DR:您还需要在代码中检测您的应用中内容的通用链接,并处理它们。 iOS 不会为你处理这个。相反,如果您告诉操作系统在您的应用程序的嵌入式浏览器中打开指向您应用程序内容的通用链接,它会完全按照指示执行。

编辑:如果您需要帮助来决定是否询问 SFSafariViewController-openURL:options:completitionHandler:用于打开 URL 的 API,this link should help you ; 我的建议是使用 -openURL:options:completitionHandler:首先,如果不成功,则使用 SFSafariViewController或类似的

希望这对您有所帮助,并且我已经正确理解了您的问题。

干杯!快乐的 iOS 11 编程! :)

关于ios - 我什么时候可以使用带有通用链接的 SFSafariViewController、WKWebView 或 UIWebView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34816577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com