iOS 通用链接(Universal Link)配置详解
iOS 通用链接(Universal Link)配置
什么是通用链接?
通用链接是iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,我们通常是只能使用scheme的方式。
为什么要突然改用通用链接的配置方式?
我们的项目中唤起第三方app一般是通过配置对应的URL Scheme的方式使用的,微信SDK的最新版本openSDK1.8.6 由于苹果iOS 13系统版本安全升级,为此openSDK在1.8.6版本进行了适配。 1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验,提升使用过程中的安全性。
要求在注册微信appid时,必须要传入universalLink,以前的方法在旧版本仍然可使用。所以就开始研究通用链接(Universal Link)的配置
1 2 3 4 5 6 7 8 9 10 11 |
|
如何配置通用链接?
1、创建json格式的一个空文件(取名必须为apple-app-site-association,并且没有后缀)
- 这里的appID是指:TeamID+BundleId的组成(例:9JA89QQLNQ.com.apple.test)(TeamID可以在开发者账号里面查看,BundleId是项目的Bundle Identifier)。
- 这里的paths是指:是设置允许的路径列表,可以是一个也可以是多个,最简单的方式是使用“*”,通配符,表示允许该域名下的任意路径。(注意:paths中的大小写是敏感的,一定要一一对应)
2、上传apple-app-site-association文件(这里就能拿到app中配置需要的域名)
(1)将apple-app-site-association文件发给服务器端的同事,让他上传到域名的根目录下或者.well-known的子目录下(这里的域名必须要是可访问的域名,由服务器端的同事给到)。
(2)Web server需要支持https,客户端通过https来访问,并且不支持重定向。
3、在app中处理通用链接
(1)添加对应的域名(上面知道的域名)到Capabilities
在项目里面定位到Capabilities,找到Associated Domains,点击允许按钮,在Domains中添加对应的域名。(Domains中的域名必须是使用applinks开头,然后输入自己的域名即可。注意:当app第一次启动之后,会自动从你自己的域名目录下下载这个apple-app-site-association文件。)
注:这里可能会遇到一个错误就是你的App ID中并没有允许使用Associated Domains,所以需要进入开发者中心,编辑App ID允许Associated Domains,并且重新生成对应的签证文件并下载安装。在最新xcode11,添加了该项,开发者账号该appId下自动打开
(2)实现AppDelegate里支持通用链接的实现方法
1 2 3 4 5 |
|
这里如果是从旧版更新WechatOpenSDK1.8.6版本的话,需要在这个里面调用微信里的这个方法,并且在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixin和weixinULAPI,可通过微信开放平台的接入文档步骤一步步进行修改或添加。
注:这里的weixinULAPI注意大小写,我之前是添加了一个weixinulapi小写的进去,结果都注册失败,一直没找到原因,直到我调用微信打印log的方法,才知道是没添加到weixinULAPI这个schemes,大小写没区分
https://www.jb51.net/article/175364.htm
补充:直接通过第三方生成通用链接和关联域名,比如说xinstall,
( https://www.xinstall.com/admin/universal_link?source=universal_link&aso=bdgwXinstallPC).
qq_39721038: 对于笔者的疑问,我认为log不能显示开始执行的顺序,毕竟log也是函数,执行log,已经是正在执行任务,而不是任务的开始时间点,log打印出来的内容,就是任务结果,所以log显示的顺序不确定。
只想学习代码: 每一次阅读都是一次知识的盛宴,让我增长了不少见识,博主的博客是我的学习良师,每篇文章都充满了启发,让我得到了更多的智慧,你的文章总是充满了深度和洞见,让我对这个领域有更深刻的理解。期待更多精彩内容。
weixin_44798165: 您好,如果不用这个计时器,因为这个无法设置动画时间,用NSTimer 当自动轮播到第一张图片的时候,手动划动会出现白色,如何处理?
都枯槐: 大佬,我这边能生成清单,但是pdf内为空是什么原因呀,也能通过审核正常发布到商店
普通网友: 支持一下!我也写了一篇获取【大厂面试真题解析、核心开发学习笔记、最新全套讲解视频、实战项目源码讲义、学习路线简历模板】的文章