[转]iOS 9 通用链接 Universal Links

转载自:iOS 9 通用链接(Universal Links)

最近老大要求在App里加这个功能,于是乎就研究了一下。

网上可以参考的文章很多,比如:

1.官方文档

2.Cocoachina:iOS 9学习系列:打通 iOS 9 的通用链接(Universal Links)

3.一篇不错的博客

建议看官方文档,上面会有很多注意事项。其他都差不多,这里只总结下需要注意的点:

1.apple-app-site-association文件不能带后缀,务必把".json"的后缀去掉!有些人的电脑是隐藏文件后缀的,这要格外注意;

2.apple-app-site-association一定要传到域名根目录下;

3.WebServer需要支持https,且https使用有效的证书(是私密链接)。笔者在这里卡了很久,原因就是后台给配的https使用无效的证书,导致应用安装的时候不能正确的下载apple-app-site-association文件;

4.如果想测试这个功能,可以让后台搭一个测试服务器,并配置虚拟主机生成域名,然后iOS这边通过host访问域名就可以了。注意"applink:"后面写的一定是域名,不能是IP;

5.抓包的结果显示,网络顺畅的情况下,应用会在在刚安装(不是打开)的时候会去applink中的地址下载apple-app-site-association文件,所以如果需要测试,请保证网络通畅;

6.当所有都准备好,需要测试该功能的时候,只需要在记事本或短信中输入App能识别的链接,然后直接点击或是长按就可以了,直接点的效果是跳转到你的App,然后右上角是“去网页”的箭头,长按的效果是弹出的菜单中第二项是“在'XXX'中打开”,这也代表着成功。直接在Safari中输入链接是无效的,必须从一处跳入才可以(比如上一级网页)。

7.苹果有个网址(这里)可以检测你的apple-app-site-association是否是有效的,准备好了可以测试一下。

8.测试的时候,建议使用dev证书打包,之后安装到手机上测试功能。未安装应用的情况下直接在手机上跑好像也是可以的,因为抓到过请求。

9.如果你有问题,但上面没有列出,Stackoverflow上面有个问题,可以看下其他人的建议。

可能写的有出入或是不全,欢迎大家补充。

更新:

1.如果需要支持此功能,需要在开发者中心做配置。具体是这样:开发者中心->Identitiers->App IDs->需要支持的应用App ID,在Application Services列表里有Associated Domains一条,把它变为Enabled就可以了。参考下图

2.当你在项目targets->Capabilities->Associated Domains中配置app link之后,系统会自动帮你写入.entitlements文件,所以不需要自己去手动加。需要注意的是,有人遇到过.entitlements文件没有被加入工程的,这也会产生问题,需要手动把.entitlements加入工程。

3.apple-app-site-association文件里有个paths字段,这个是用来控制可识别链接的,星号的写法代表了可识别域名下所有链接。这篇博客里有很多其他公司的例子,可以参考一下。

文/subvertWuxu(简书作者)
原文链接:http://www.jianshu.com/p/c2ca5b5f391f
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

 

Leave a Reply

Your email address will not be published. Required fields are marked *