[iOS]友盟分享SDK6.9.8的适配

前言

最近更新了友盟share SDK后发现分享到微博、微信、QQ全部不能用了,通过各种查阅资料、查看SDK说明,最终一个个填坑了,在这里记录一下填坑过程!

填坑

微博

之前分享到微博用的是UMShareWebpageObject这个类,但是升级到6.9.8之后,用这个就不起作用了,一直提示网络连接失败,百度半天也没找到啥原因,最后通过观察其他APP分享到微博,发现分享后下面都有一张图片,于是就想到是不是分享的图片,所以就把分享类改成了UMShareImageObject,真的成功了。但是分享出来后只有一个图片,没有文字,titledescr都没有,后来又看到UMSocialMessageObject这个类中有个text属性,说明是非纯文本分享文本,把分享的文字和链接都设置到text里面,终于成功了,下面贴下代码

// 判断分享类型,如果是微博,单独处理
if (platformType == UMSocialPlatformType_Sina) {
     UMShareImageObject *shareObject = [UMShareImageObject shareObjectWithTitle:nil descr:nil thumImage:nil];
     // 分享的图片
     shareObject.shareImage = thumbImage; 
     // 分享的文字和链接
     messageObject.text = [NSString stringWithFormat:@"%@%@", data.share_title, data.web_url];   
     messageObject.shareObject = shareObject;
}

不知道是UMShareWebpageObject这个类不起作用了,还是我使用的姿势不对,如果有人知道可以分享下。

微信

关于微信的更新友盟SDK上有说明
1、SSO白名单中额外增加了weixinULAPI

weixinULAPI.png

2、增加设置universalLink的API,需要在初始化SDK的时候设置,同时需要在微信开放平台配置universalLink

//配置微信平台的Universal Links
[UMSocialGlobal shareInstance].universalLinkDic = @{@(UMSocialPlatformType_WechatSession):
@"https://umplus-sdk-download.oss-cn-shanghai.aliyuncs.com/"};

设置之后试了一下,发现跳转到微信后显示正在连接中,之后又跳回APP就没反应了,后来通过查询微信的SDK发现需要设置Universal Links系统回调,后来看了看友盟的SDK,也提供了方法
3、设置Universal Links系统回调

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
{
    if (![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) {
        // 其他SDK的回调
    }
    return YES;
}

通过上面的三步,微信分享成功了,但是在首次分享的时候会出现“正在连接”的提示,并跳转返回app后再打开微信出现联系人列表,第二次分享就没问题了,这应该是微信升级Universal Links的一个坑吧。

QQ

更新友盟SDK6.9.8之后分享到QQ会提示一个错误,具体是什么忘记了,更新步骤跟微信差不多
1、需要额外增加SSO白名单mqqopensdklaunchminiapp和mqqopensdkminiapp
2、增加设置universalLink的API
3、设置Universal Links系统回调
第2步略有不同,具体是需要在QQ互联的官网,找到对应的APP,设置universalLink,具体可查看填写及校验universallinks,然后更新apple-app-site-association文件

apple-app-site-association

最后

通过上面的步骤,友盟分享6.9.8的坑最终都解决了,如果你有疑问或者建议,欢迎在下面留言,我们一起交流学习。

你可能感兴趣的:([iOS]友盟分享SDK6.9.8的适配)