iOS 9 (通用链接) Universal Links

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

这是我研究过程中碰到的坑,希望对你们有所帮助!如过有任何疑问请联系我,大家一起学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容