URL|URL Scheme和Universal link

URL Scheme URL Scheme是苹果为方便app之间互相调用而设计的
URL Scheme的设置 设置一个URL Scheme,唯一标识一个app,其他APP能够通过URL scheme拼成类似于URL链接的形式唤起该app,并且拼接的URL链接能够携带一些参数,从而使不同APP之间能够通信或者分享一些数据

URL|URL Scheme和Universal link
文章图片
屏幕快照 2020-04-28 下午7.43.55.png 如果两个APP都设置了同一个URL scheme,会造成冲突,有一个APP无法被打开;后安装的APP会被打开,也就是最后将URL scheme写入系统中的APP会优先被唤起;
唤起APP

NSURL *url = [NSURL URLWithString:@"efgad24yxl://share?key=param"]; if ([[UIApplication sharedApplication] canOpenURL:url]) { if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) { //iOS 10.0+ [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { }]; }else{ //iOS 2~10 [[UIApplication sharedApplication] openURL:url]; } } else { //一般是没有安装 NSLog(@"跳转下载app链接"); }

Universal Link 【URL|URL Scheme和Universal link】通用链接是通过传统的HTTP链接能够打开APP的技术
通过一个唯一的网址,就可以连接到APP的某一个视图;如果用户没有安装对应的APP则跳转到普通的网页
在webview或者Safari打开一个universal link,如果APP里associated domain里关联了该link,则会跳转至该APP
Universal Link的基本运作流程 1.APP第一次启动或APP更新版本后第一次启动
2.APP向工程里配置的域名发起Get请求拉取配置好存放在https服务器上的apple-app-association文件
3.APP将apple-app-association注册给系统
4.由任意webview发起跳转的url,如果命中了apple-app-association注册过的通用链接
5.打开App,触发Universal Link delegate
6.没命中,webview继续跳转url
universal link具有唯一性,只能打开一个app; 因为注册关联域名的时候apple-app-association文件里有配置bundle identifier,必须和APP的包名一致才能work

    推荐阅读