美文网首页universal links
UniversalLink适配踩坑

UniversalLink适配踩坑

作者: honzon_0 | 来源:发表于2020-04-02 12:12 被阅读0次

    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,以验证所使用的接口的功能性和可用性。
    

    以及QQ OpenSDK更新要求

    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版本

    QQ填写及校验universallinks

    所以,项目需要做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文件到设备本地,并有一定时间的缓存,适配时一定要注意

    记此一游,谨防踩坑。

    未经授权,禁止转载

    未经授权,禁止转载

    未经授权,禁止转载

    相关文章

      网友评论

        本文标题:UniversalLink适配踩坑

        本文链接:https://www.haomeiwen.com/subject/ihztphtx.html