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-association
Associated 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
,如下图所示: