1. 通用链接
通用链接要求在iOS9及以上的版本运行,做用是可以备忘录,短信,邮件中点击链接跳转APP,
这里有对Universal Links介绍的官方文档:
2.使用通用链接的准备
通过 SSL 访问域名 (支持https)
支持上传一个 JSON 文件到你的域名 (支持上传文件到域名根目录)
至少 iOS 9 版本
至少 Xcode 7 beta 2 (因为之前的版本不支持)
3. 创建apple-app-site-association文件并上传该文件
首先创建一个名为apple-app-site-association的JSON文件,注意这个文件不能有后缀这很重要,文件的内容为:
appID:是由Team ID和bundle id拼接出来的,Team ID可以登录苹果开发者账号来获取:
取Team ID放到appID中bundle id是在项目中获取:
General下 bundle id放到appID中paths:为服务器路径,*号代表域名根目录以下都会打开APP。
上传这个文件到你的域名根目录,检测上传成功:苹果给我们提供了网址让我们来测试apple-app-site-association文件是否上传成功,根据我的实验发现就算在苹果提供的测试网站提示错误的,有时候也可以使用,区分的标准为点击:https://你的域名/apple-app-site-association可以访问到文件就可以了。
4.证书要求
通用链接需要你在开发者中心 Identifiers-->App IDs中找到自己的证书支持 -->Associated Domains:
如果当前不支持Associated Domains可以点击下边的Edit进行编辑,成功以后需要重新下载证书。5.项目配置
在项目中找到Capabilities --> Associated Domains 点击右侧开关打开Associated Domains功能:
上图表示成功,打开的时候报错,检查一下bundle id是否一致添加支持的域名:
添加ni需要支持的域名6.接受响应的代码
在AppDelegate.m中调用- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler 方法来处理响应
判断点击的链接是否是你所支持的注意点:
1. Universal Links不支持本域跳转,意思就是你当前的页面链接和你要跳转的域名不能相同,否则跳转不成功。
2. *号代表域名根目录一下的路径都可以访问APP,根据我的测试发现根目录调用不会跳APP也就是说你的域名是smda.vshunter.com,那么你用https://smda.vshunter.com是不会跳app的,正确的应该是https://smda.vshunter.com/user或者https://smda.vshunter.com/....,这样才能跳APP
这是我研究过程中碰到的坑,希望对你们有所帮助!如过有任何疑问请联系我,大家一起学习
网友评论