美文网首页
iOS 9 (通用链接) Universal Links

iOS 9 (通用链接) Universal Links

作者: 开发iOS攻城狮 | 来源:发表于2017-06-08 16:35 被阅读177次

    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

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

    相关文章

      网友评论

          本文标题:iOS 9 (通用链接) Universal Links

          本文链接:https://www.haomeiwen.com/subject/bozzfxtx.html