首页 > 技术文章 > 友盟社会化组件遇到的问题

huaixu 2017-04-13 09:51 原文

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;

 

推荐阅读