ios - 如何以编程方式确定 URL 是通用链接还是只是常规 Web URL?

标签 ios ios-universal-links

在 iOS 上,如何以编程方式确定 URL 是通用链接还是只是常规 Web URL?

假设您要启动 URL http://www.yelp.com从您自己的 iOS 应用程序。 (http://www.yelp.com 是一个完全注册的通用链接。)

案例一)用户没有安装该应用 -> 您希望在应用内 webview 中向他们展示该网站。

情况二)用户确实安装了该应用程序 -> 您想要启动您的应用程序并使用 [[UIApplication sharedApplication] openURL:URL] 直接深度链接到 yelp 应用程序;而不是在应用程序中呈现 WebView 。

问题是: 您所要做的只是字符串 url:“http://www.yelp.com您的目标是在已安装的情况下启动 yelp 应用程序,但在未安装 yelp 的情况下显示应用程序内 webview。

注1:本题只针对通用链接。请不要给出使用 URL 方案的答案。

注意2:这个问题不是专门启动yelp app。该解决方案应该适用于任何 url,以确定它是否是已安装应用的通用链接。

你能做到吗?

最佳答案

使用 UIApplicationOpenURLOptionUniversalLinksOnly 检测链接是否通用

解决方法如下:

[[UIApplication sharedApplication] openURL:url
                                       options:@{UIApplicationOpenURLOptionUniversalLinksOnly: @YES}
                             completionHandler:^(BOOL success){
                                 if(!success) {
                                     // present in app web view, the app is not installed 
                                 }
                             }];

关于ios - 如何以编程方式确定 URL 是通用链接还是只是常规 Web URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579374/

相关文章:

iOS - 通用链接错误

ios - 通用链接打开错误的应用程序(Facebook 应用程序)

ios - APN 和临时构建

objective-c - UIViewController 中的 PullToRefresh TableView

ios - 使用 json 数据填充 tableView

ios - UITextView : Tapping a universal deep link that should lead to the SAME app, 在 Safari 中打开回退 URL

ios - 通用链接、continueUserActivity 和 sourceApplication 未被调用

ios - 具有多个部分的 TableView 仅在每个部分中选择一行

iphone - 如何更改 xib 文件的路径?

ios - iOS分支深层链接无法在设备上打开应用程序,但在模拟器上效果很好