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;