iOS微信授权登录与通用链接配置
Overview
微信的openSDK在1.8.6版本支持了Universal Links方式的跳转,在使用新版本的时候需要设置Universal Links。
Universal Links 是在WWDC 2005提出了iOS9的新特性之一。
具体的使用可以参考Support Universal Links和Allowing Apps and Websites to Link to Your Content两篇文章。
这篇文章主要整理微信openSDK的对接和Universal Links的配置。
Universal Links配置
当你支持通用链接时,iOS用户点击一个你网站的链接,可以被无缝地重定向到你安装的应用程序,而无需通过Safari。如果你的应用程序没有被安装,点击你网站的一个链接会在Safari中打开。
开发者账号配置
找到相应的
App ID,勾选Associated Domains选项,然后点击保存即可。

apple-app-site-association 文件编写
关于apple-app-site-association的编写,可以查看Support Universal Links中相应文档的介绍。
为通用链接添加支持非常简单,需要采取以下三个步骤:
- 创建一个
apple-app-site-association文件,其中包含有关应用程序可以处理的 url 的 JSON 数据。 - 将
apple-app-site-association文件上传到 HTTPS web 服务器。 可以将文件放在Web服务器的根目录或子目录.well-known下。 - 开始你的应用程序来处理通用链接。
Note:
apple-app-site-association文件是纯文本文件,没有后缀名。
关于apple-app-site-association的编写的官方示例如下方所示:
1 | { |
其中appID中的9JA89QQLNQ为团队ID,com.apple.wwdc为BundleID。如需添加多个appID,如上方所示。
关于微信对
Universal Links配置的要求
Universal Links必须支持httpsUniversal Links配置的paths不能带query参数- 微信使用
Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符/*
微信示例:
1 | { |
Note:本文项目的通用链接我存放到个人的阿里云中,路径如下:
1 | https://blog-zhouwei.oss-cn-beijing.aliyuncs.com/apple-app-site-association |
apple-app-site-association 文件验证
将编写好的apple-app-site-association文件上传到Web服务器的根目录或子目录.well-known下后,我们可以进行校验一下服务器的配置是否正确。
可以通过App Search API Validation Tool网页工具进行校验。
打开App Search API Validation Tool网页工具,输入apple-app-site-association 在web 服务器中的地址,类似于https://***/apple-app-site-association。
验证的结果可能分为三种:验证通过-未上线、验证通过-已上线和验证失败。其结果分别如下所示。
验证通过-未上线

验证通过-已上线

验证失败

Note:验证失败后,将
apple-app-site-association存放到服务器的地址复制到浏览器中,查看apple-app-site-association是否可以下载,如果可以下载查看文件内的JSON数据格式是否正确,如果不可以下载所以服务端配置的有问题。
工程配置
如果上方的操作都已经做完,可以在工程中进行配置。
配置相对来说比较简单在 TARGETS->Signing&Capabilities 中选择 + Capability 然后搜索Associated Domains进行添加。
如图所示:

添加完以后,将通用链接地址填入到Domains中。
Note:
如果提供的
apple-app-site-association文件地址为https://blog-zhouwei.oss-cn-beijing.aliyuncs.com/apple-app-site-associationAssociated Domains中需要填写(applinks:为固定格式):
applinks:blog-zhouwei.oss-cn-beijing.aliyuncs.com代码注册和微信开发平台中填写:
https://blog-zhouwei.oss-cn-beijing.aliyuncs.com/
其实配置到这里,选中证书,运行到手机。运行完后,在手机浏览器中输入https://blog-zhouwei.oss-cn-beijing.aliyuncs.com/ ,下滑的时候会出现从App中打开的选项。
如果将该链接复制到文本文档中,常按也会出现从App中打开的选项。
这说明Universal Links已经配置完成了。
微信配置
配置Universal Links
微信的通用链接配置如下方所示:

Note: 就如同上方中写道,如果通用链接地址为
https://**/apple-app-site-association,微信的Universal Links需要添加https://**/即可。
配置URL Types
配置完Universal Links后项目中同时还需要在工程中的TARGETS->info->URL Types中添加URL scheme,其中URL scheme为所注册的程序id。
如下图所示:
配置LSApplicationQueriesSchemes
在工程的info.plist中添加LSApplicationQueriesSchemes并添加weixin和weixinULAPI,如下图所示: