iOS UniversalLink适配踩坑
最近微信OpenSDK升级微信OpenSDK更新要求
关于openSDK1.8.6的更新说明
由于苹果iOS 13系统版本安全升级,为此openSDK在1.8.6版本进行了适配。 1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。
*建议开发者接入新版本SDK, 覆盖测试微信7.0.7或以上版本、iOS12或13,以验证所使用的接口的功能性和可用性。
1. 系统及版本要求
Universal Links方案是基于苹果在iOS13系统上针对隐私政策的调整,相关的验证环境请首先确认:
1. SDK版本: OpenSdk3.3.7或以上
2. 手Q版本: 8.1.3或以上
3. 系统版本: iOS13或以上
但是 但是 但是
2020年3月17日更新的QQ OpenSDK 3.3.8版本支持了iOS13以下的Universal Links,新增支持设置opensdk只使用UniversalLink模式与手机QQ交互(系统要求大于等于iOS9)和需要使用新的注册方法
/**
* 初始化TencentOAuth对象(>=3.3.8)
* \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
* \param enabled 默认为NO,第三方应用是否将sdk和手机QQ的交互方式切换为UniversalLink方式,启用后则在iOS9及以上的系统都会生效UniversalLink方式;否则,默认仅在iOS13及以上的系统生效UniversalLink方式。
* \param universalLink 可以为nil,第三方应用在互联开放平台注册的UniversalLink,和bundleID一一对应(当为nil时,互联平台会按规则生成UniversalLink,详见官网说明)
* \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象
* \return 初始化后的授权登录对象
*
*****【使用说明】*****
* 1、支持sdk与手Q的交互切换为UniversalLink模式,主要目的"是为了避免手Q的UrlScheme被其他应用抢注后,导致sdk接口功能受到影响"。
* 2 、由于手Q版本在 >=8.1.3 后才适配了UniversalLink,所以一旦开启了enabled开关,“务必做到”及时知会用户升级手Q版本。
*****
*/
- (id)initWithAppId:(NSString *)appId
enableUniveralLink:(BOOL)enabled
universalLink:(NSString *)universalLink
delegate:(id<TencentSessionDelegate>)delegate;
注意 由于手Q版本在 >=8.1.3 后才适配了UniversalLink,所以一旦开启了enabled开关,“务必做到”及时知会用户升级手Q版本
所以,项目需要做Universal Links适配,准备工作按照Universal Links 苹果官方文档操作即可
这里遇到的最大的坑是,网上大多数的文章所写的的apple-app-site-association
文件中关于Paths
都写着可以用"paths": [ "*" ]
,但是如果公司不止一个App需要适配,那么这么写是不对的,因为这代表这域名下所有链接都跳这个指定的App,分享过程会产生很多匪夷所思的问题。
正确操作
域名
指定域名:https://www.xxx.com
apple-app-site-association
文件放在该域名根目录下或者.well-known
目录下,没有.json
后缀.
例
https://www.xxx.com/apple-app-site-association
https://www.xxx.com/.well-known/apple-app-site-association
apple-app-site-association文件格式
单个App
信息:
Team ID :Honzon
Bundle ID :com.honzonapp
appid :12345678
{
"applinks": {
"apps": [],
"details": [{
"appID": "Honzon.com.honzonapp",
"paths": ["*","/qq_conn/12345678/*"]
}
}
}
注册相应平台的universalLink链接
appid :12345678
微信 https://www.xxx.com/
QQ https://www.xxx.com/qq_conn/12345678/
多个app
信息:
Team ID :Honzon
Bundle ID :com.honzonapp
appid :1111111
Bundle ID :com.hzapp
appid :2222222
Bundle ID :com.hoapp
appid :3333333
{
"applinks": {
"apps": [],
"details": [{
"appID": "Honzon.com.honzonapp",
"paths": ["/wechat-honzon/*","/qq_conn/1111111/*"]
},{
"appID": "Honzon.com.hzapp",
"paths": ["/wechat-hz/*","/qq_conn/2222222/*"]
},{
"appID": "Honzon.com.hoapp",
"paths": ["/wechat-ho/*","/qq_conn/3333333/*"]
}
}
}
注册相应平台的universalLink链接
Bundle ID :com.honzonapp
appid :1111111
微信 https://www.xxx.com/wechat-honzon/
QQ https://www.xxx.com/qq_conn/1111111/
Bundle ID :com.hzapp
appid :2222222
微信 https://www.xxx.com/wechat-hz/
QQ https://www.xxx.com/qq_conn/2222222/
Bundle ID :com.hoapp
appid :3333333
微信 https://www.xxx.com/wechat-ho/
QQ https://www.xxx.com/qq_conn/3333333/
2020.08.35更新
设备会下载apple-app-site-association
的json文件到设备本地,并有一定时间的缓存,适配时一定要注意
记此一游,谨防踩坑。
未经授权,禁止转载
未经授权,禁止转载
未经授权,禁止转载
网友评论