在项目中碰到了需要在微信中分享的H5页拉起app,没法申请到微信的白名单,所以找到了别的办法,Apple在WWDC2015上为iOS9引入的一个新功能,是通过传统HTTP链接来启动App的技术。可以使用相同的网址打开网站和App。
使用UniversalLink有一些条件:
至少Xcode7
至少iOS9beta2(之前的测试版本要做额外的工作)
有一个注册通过SSL访问的域名
1. ios部分的操作(本人是前端,ios操作不太详细,可以去网上查找)
a.注册App并打开Associated Domains服务
b.在Xcode中开启Associated Domains服务
添加域名,点击Associated Domains的“+”添加前缀为applinks:的域名
c.确认在entitlements文件包含在工程中
2.配置apple-app-site-association文件
a.创建apple-app-site-association的json文件
文件格式如下图所示:
其中apps项必须对应一个空的数组。details项对应一个字典的数组,网站所能支持的每个app一个字典。
appID对应项由前缀和ID两部分组成,可以在developer.apple.com中的Identifiers→AppIDs中点击对应的App ID查看。
paths对应域名中的path,用于过滤可以跳转到App的链接,支持通配符‘*’,‘?’以及‘NOT’进行匹配,匹配的优先级是从左至右依次降低。
b.服务器配置要求:
域名需要SSL证书,如果不支持HTTPS,则需要对apple-app-site-association进行SSL认证。认证命令如下:
cat apple-app-site-association-unsigned | openssl smime -sign -inkey yourdomain.com.key -signer yourdomain.com.cert -certfile digicertintermediate.cert -noattr -nodetach -outform DER > apple-app-site-association
服务器配置要求站点必须是youdomain.com/apple-app-site-association,请求头是‘application/pkcs7-mime’,返回HTTP码是200
3.前端处理(前端处理相对简单些,但可能会因为苹果手机系统版本不一样而出现拉不起app的情况)