苹果为了方便开发者,提供了一个网页验证我们编写的这个apple-app-site-association
是否合法有效
- Universal Link(通用链接)注意点
Universal Link
跨域Universal Link
有跨域问题,Universal Link
必须要求跨域,如果不跨域,就不会跳转(iOS 9.2
之后的改动) 假如当前网页的域名是A
,当前网页发起跳转的域名是B
,必须要求B
和A
是不同域名才会触发Universal Link
,如果B
和A
是相同域名,只会继续在当前WebView
里面进行跳转,哪怕你的Universal Link
一切正常,根本不会打开App
Universal Link
请求apple-app-site-association
时机
-
当我们的
App
在设备上第一次运行时,如果支持Associated Domains
功能,那么iOS
会自动去GET
定义的Domain
下的apple-app-site-association
文件 -
iOS
会先请求https://domain.com/.well-known/apple-app-site-association
,如果此文件请求不到,再去请求https://domain.com/apple-app-site-association
,所以如果想要避免服务器接收过多GET
请求,可以直接把apple-app-site-association
放在./well-known
目录下 -
服务器上
apple-app-site-association
的更新不会让iOS
本地的apple-app-site-association
同步更新,即iOS
只会在App
第一次启动时请求一次,以后除非App
更新或重新安装,否则不会在每次打开时请求apple-app-site-association
-
Universal Link的好处
- 之前的
Custom URL scheme
是自定义的协议,因此在没有安装该app
的情况下是无法直接打开的。而Universal Links
本身就是一个能够指向web
页面或者app
内容页的标准web link
,因此能够很好的兼容其他情况 Universal links
是从服务器上查询是哪个app
需要被打开,因此不存在Custom URL scheme
那样名字被抢占、冲突的情况Universal links
支持从其他app
中的UIWebView
中跳转到目标app
- 提供
Universal link
给别的app
进行app
间的交流时,对方并不能够用这个方法去检测你的app
是否被安装(之前的custom scheme URL
的canOpenURL
方法可以)