1、因为部分界面分享平台不同,有的需要包含微信朋友圈和qq空间,有的不需要
接入旧版本友盟SDK时,为了满足需求,在不需要微信朋友圈和QQ空间的地方使用代码
[[UMSocialManager defaultManager] removePlatformProviderWithPlatformType:UMSocialPlatformType_WechatFavorite];//微信收藏
[[UMSocialManager defaultManager] removePlatformProviderWithPlatformType:UMSocialPlatformType_WechatTimeLine];//微信朋友圈
[[UMSocialManager defaultManager] removePlatformProviderWithPlatformType:UMSocialPlatformType_Qzone];//QQ空间
换了最新的6.4.2版本后,发现如果使用了removePlatformProviderWithPlatformType后,所有界面调用友盟分享时微信朋友圈、qq空间、微信收藏都不见了。
解决方案:仔细研究了下友盟的文档,换了另外一种方法,满足了需求也解决了这个问题
在不需要微信朋友圈、qq空间的界面:
[UMSocialUIManager setPreDefinePlatforms:@[@(UMSocialPlatformType_QQ),@(UMSocialPlatformType_WechatSession)]];
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
//在回调里面获得点击的
[self shareWebPageToPlatformType:platformType];
}];
在需要微信朋友圈、qq空间的界面:
[UMSocialUIManager setPreDefinePlatforms:@[@(UMSocialPlatformType_QQ),@(UMSocialPlatformType_WechatSession),@(UMSocialPlatformType_WechatTimeLine),@(UMSocialPlatformType_Qzone)]];
2、使用UMShareWebpageObject分享url的时候,发现有时候可以分享成功,有时会分享失败
解决方案:
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
NSString* thumbURL = _imgHeadUrl;//网络图片
NSURL *url =[NSURL URLWithString:thumbURL];
NSData *tempData =[NSData dataWithContentsOfURL:url];//将网络图片转化为nsdata
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"标题" descr:@"描述" thumImage:tempData];
//设置网页地址
NSString *newUlr = [_shareUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
shareObject.webpageUrl = newUlr;
//分享消息对象设置分享内容对象
messageObject.shareObject = shareObject;