Universal Links在Swift上的应用

Universal Links

通用链接(Universal Link)是iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,我们通常是只能使用scheme的方式。

为何要使用Universal Links

原本App的微信分享仅使用了原生分享组件UIActivityViewController,上手体验并不好(明文显示分享链接、无内容来源展示、布局不美观...),于是有了接入微信sdk分享的需求。在查看微信官网文档(iOS接入指南)时第一次接触到Universal Links这个名词,于是有了这篇文章。

开始配置

Support Universal Links  先附上苹果官方文档

使用要求

1.有一个自己的域名,该域名支持https请求且CA证书有效

2.上传一个json文件到服务器

使用步骤

1.在Xcode中打开Associated Domains

 

 
Associated Domains设置步骤

提示:可在第二步上方的➕中找到Associated Domains选项

2.设置apple-app-site-association文件

⑴ 创建一个文件(无后缀),其内容为json数据,格式如下:

{"applinks":{"apps":[],"details":[{"appID":"TEAMIDSHSAUX.com.test.bundle","paths":["*"]}]}}

其中appID是由TeamID.BundleID组成。TeamID可在开发者中心查看,BundleID可在Xcode中查看。paths是App的路径支持列表,一般填写*即可。

⑵ 创建好该文件后将其上传到服务器上,放在/var/html/.well-known路径下(.well-known可能是隐藏的)。

⑶ 在浏览器中访问https://你的域名/.well-known/apple-app-site-association,如果正确显示其内容或者下载文件并确认其中内容无误,那么大喊伞兵一号服务器准备就绪

⑷ 其实苹果官方提供了一个检测开发者服务器是否支持Universal Links的网站,将刚刚配置好的链接https://你的域名/.well-known/apple-app-site-association填写至该网站并检测后稍等一会,如果你的显示和我一样,那么恭喜你。

 

 
成功截图

⑸ 模拟器测试

重新编译一次App,在Simulator中打开safari,输入你的域名,向下拉动页面,如果看到打开App的提示,Universal Links就已经配置成功了。

 
safari打开链接成功

3.在AppDelegate中处理

func application(_application:UIApplication, continue userActivity:NSUserActivity, restorationHandler:@escaping([UIUserActivityRestoring]?) ->Void) ->Bool中获取链接并处理,我这里获取的是微信的跳转,所以用的是微信SDK的方法。

 
原文地址:https://www.cnblogs.com/baitongtong/p/13933741.html