Universal Links适配FAQ
1. 系统及版本要求
Universal Links方案是基于苹果在iOS13系统上针对隐私政策的调整,相关的验证环境请首先确认:
- 1. SDK版本: OpenSdk3.3.7或以上
- 2. 手Q版本: 8.1.3或以上
- 3. 系统版本: iOS13或以上
2. 确认手机QQ的Universal Links正常
确认手机QQ(8.1.3或以上)版本在苹果设备上Universal Links正常,这是为了保证OpenSdk和手机QQ之间的通信正常。
在系统的Safari浏览器中输入 https://qm.qq.com,下拉查看是否有打开QQ的入口,如图一所示:
若无该打开入口,可能是系统拉取手机QQ的Universal Links失败,请检查当前手机的网络状态是否正常,或者更新/重装手机QQ。
3. 确认APP自身的Universal Links正常
按照接入指引中apple-app-site-association配置文件的编写格式,部署ok。同样按照第2点的方式,确认APP自身的Universal Links是否可以正常打开。
4. 分享交互行为确认
【场景一】
未使用授权登录的情况下,“首次”进行分享,唤起手机QQ-->分享成功后弹窗提醒只有一个选项(即返回APP),并无“留在QQ”的选项。
后续分享成功后,选项卡可选择留在QQ。
【场景二】
场景一中若在无“留在QQ”的状态下,没有点击返回第三方APP,下次再进行分享时,会出现如图四的“安全校验页”。
此时交互为:从APP唤起手Q-->出现安全校验页-->校验成功后返回第三方APP-->再次拉起手Q完成分享。
这种多次跳转的过程,每个用户只会出现一次,若多次出现该类跳转,请按上述检查下Universal Links的有效性。
5. 第三方APP客户端代码确认
5.1 请务必确保第三方APP的客户端已经处理了系统的如下回调函数,具体详情可参见sdkDemo,如下图所示。
- (BOOL)application:(UIApplication *)application continueUserActivity: (NSUserActivity *)userActivity restorationHandler:(void(^) (NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0); |
5.2 当出现了图4的安全校验页,并紧接着正常打开了第三APP;若此时“停留在第三方APP中,并未出现二次跳装的过程”,则检查如下接口的初始化代码,即 delegate不可为nil 。
/** * 初始化TencentOAuth对象 * \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识 * \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象 * \return 初始化后的授权登录对象 */ - (id)initWithAppId:(NSString *)appId andDelegate:(id<TencentSessionDelegate>)delegate; |