手Q OpenSDK适配IOS16粘贴板
- 背景介绍
- 手Q OpenSDK使用粘贴板说明:
由于系统限制等历史原因,为了优化体验,集成了手Q OpenSDK的应用在与手Q通信过程中,数据传输会使用到独立粘贴板(与用户手动复制粘贴板隔离),在用户同意且与普通粘贴板隔离的情况下,授权登录和分享等功能会使用到独立粘贴板。
具体流程如下:
- iOS16使用粘贴板弹窗提示:
从iOS16系统开始,App读取其他App设置粘贴板数据,会弹出提示框,用户同意后才能继续读取,用户未同意则无法继续读取数据,且每次读取都会弹出提示框。
以下分别是在流程的第3、7步的提示框,如果用户点击【允许粘贴】则继续后续流程,如果点击【不允许粘贴】则流程会被中断。
- 改造情况
- 改造原则
粘贴板使用弹窗提示,会影响到正常流程,为了不影响用户的正常体验,手Q App和OpenSDK的数据传输方式都进行优化,尽量不使用粘贴板传递数据,主要有以下原则:
- 分享文件、图片、音频、视频相关接口,由于数据量比较大,保留使用粘贴板传递数据。
- 授权登录、分享文本、分享url相关接口,数据量较小,都确保支持使用scheme或者Universal Link传递数据。
- 版本要求
从手Q 8.4.17版本+OpenSDK 3.5.1版本开始,授权登录接口已经支持使用scheme或者Universal Link传递数据。
此次改造手Q 8.9.5版本+OpenSDK 3.5.12版本开始,分享相关接口也支持使用scheme或者Universal Link传递数据。
以上都需要应用在info.plist中配置LSApplicationQueriesSchemes,后续会讲解如何配置。
相关功能支持非粘贴板传值版本要求:
功能 | 手Q版本要求 | OpenSDK版本要求 | LSApplicationQueriesSchemes |
授权登录 | 8.4.17+ | 3.5.1+ | mqqopensdknopasteboard |
分享相关功能 | 8.9.5+ | 3.5.12+ | mqqopensdknopasteboardios16 |
- 升级指引
- 配置LSApplicationQueriesSchemes:
如需支持scheme或者Universal Link传递数据,请先按照版本要求升级OpenSDK版本。
版本达到要求后,还需要配置LSApplicationQueriesSchemes,配置方法:
更新OpenSDK后,在XCode工程中,选择工程设置项 -> 找到对应 "TARGETS" -> 选择"info" -> 选择"Queried URL Schemes" -> 添加对应的配置。参考如下图:
- 补充说明
充分验证,升级完成后,建议测试考虑全面,除了把使用到OpenSDK功能全部测试外,还需要考虑版本交差测试,新版OpenSDK和旧版OpenSDK,对应新版手Q和旧版手Q。
遗留问题,由于部分接口(分享文件、图片、音频、视频相关接口)需要传递文件,且由于系统限制,只能使用粘贴板传递,我们也会尽量研究新的方案,避免使用粘贴板。