iOS友盟第三方登录及分享

新浪微博 微信 QQ

友盟SDK下载地址: http://dev.umeng.com/social/ios/sdk-download 下载简洁版

将下面的拖入项目中:
UMSocial - U-Share SDK核心目录
UMSocialSDK - U-Share SDK核心framework
UMSocialUI - U-Share 分享UI资源、分享面板framework
SocialLibraries - 所选择下载的第三方平台SDK及U-Share链接库

在Build Settings ----Linking------Other Linker Flags加入-ObjC ,

加入依赖系统库
libsqlite3.tbd
CoreGraphics.framework

配置OSS白名单
LSApplicationQueriesSchemes


wechat
weixin

sinaweibohd
sinaweibo
sinaweibosso
weibosdk
weibosdk2.5

mqqapi
mqq
mqqOpensdkSSoLogin
mqqconnect
mqqopensdkdataline
mqqopensdkgrouptribeshare
mqqopensdkfriend
mqqopensdkapi
mqqopensdkapiV2
mqqopensdkapiV3
mqqopensdkapiV4
mqzoneopensdk
wtloginmqq
wtloginmqq2
mqqwpa
mqzone
mqzonev2
mqzoneshare
wtloginqzone
mqzonewx
mqzoneopensdkapiV2
mqzoneopensdkapi19
mqzoneopensdkapi
mqqbrowser
mttbrowser

分享

调取自定义模板

导入头文件
import
import
遵守协议
ViewDidLoad 里面定义平台

- (void)shareyoumeng
{
    //设置用户自定义的平台
 [UMSocialUIManager setPreDefinePlatforms:@[@(UMSocialPlatformType_WechatSession), @(UMSocialPlatformType_WechatTimeLine),  @(UMSocialPlatformType_QQ), @(UMSocialPlatformType_Qzone), @(UMSocialPlatformType_Sina), ]];
 //设置分享面板的显示和隐藏的代理回调
  [UMSocialUIManager setShareMenuViewDelegate:self];
}

// 分享按钮点击事件
- (void)showBottomNormalView
{
[UMSocialShareUIConfig shareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType = UMSocialSharePageGroupViewPositionType_Bottom;
[UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageItemStyleType = UMSocialPlatformItemViewBackgroudType_None;
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
//在回调里面获得点击的
if (platformType == UMSocialPlatformType_WechatSession)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_WechatSession];
}
else if (platformType == UMSocialPlatformType_WechatTimeLine)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_WechatTimeLine];
}
else if (platformType == UMSocialPlatformType_QQ)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_QQ];
}
else if (platformType == UMSocialPlatformType_Qzone)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_Qzone];
}
else if (platformType == UMSocialPlatformType_Sina)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_Sina];
}
else{
}
}];
}

//网页分享
- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType
{
//创建分享消息对象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

//创建网页内容对象
NSString* thumbURL =  @"分享的图片";
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"分享的标题" descr:@"分享的内容" thumImage:thumbURL];
//设置网页地址
shareObject.webpageUrl = @"分享的链接";

//分享消息对象设置分享内容对象
messageObject.shareObject = shareObject;

//调用分享接口

[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
    if (error) {
        UMSocialLogInfo(@"************Share fail with error %@*********",error);
    }else{
        if ([data isKindOfClass:[UMSocialShareResponse class]]) {
            UMSocialShareResponse *resp = data;
            //分享结果消息
            UMSocialLogInfo(@"response message is %@",resp.message);
            //第三方原始返回的数据
            UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
        }else{
            UMSocialLogInfo(@"response data is %@",data);
        }
    }
    [self alertWithError:error];
}];
}


- (void)alertWithError:(NSError *)error
{
NSString *result = nil;
if (!error) {
    
result = [NSString stringWithFormat:@"Share succeed"];
}
else{
NSMutableString *str = [NSMutableString string];
if (error.userInfo) {
  for (NSString *key in error.userInfo) {
 [str appendFormat:@"%@ = %@\n", key, error.userInfo[key]];
 }
   }
if (error) {
 result = [NSString stringWithFormat:@"Share fail with error code: %d\n%@",(int)error.code, str];
}
else{
  result = [NSString stringWithFormat:@"Share fail"];
}
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"share" message:result  delegate:nil  cancelButtonTitle:NSLocalizedString(@"sure", @"确定") otherButtonTitles:nil];
[alert show];
}

登录

QQ登录 [self getUserInfoForPlatform:UMSocialPlatformType_QQ];
微信登录 [self getUserInfoForPlatform:UMSocialPlatformType_WechatSession];
微博登录 [self getUserInfoForPlatform:UMSocialPlatformType_Sina];

  - (void)getUserInfoForPlatform:(UMSocialPlatformType)platformType
{
[[UMSocialManager defaultManager] getUserInfoWithPlatform:platformType currentViewController:self completion:^(id result, NSError *error) {

   UMSocialUserInfoResponse *resp = result;
  // 第三方登录数据(为空表示平台未提供)
 // 授权数据
  NSLog(@" uid: %@", resp.uid);
  NSLog(@" openid: %@", resp.openid);
  NSLog(@" accessToken: %@", resp.accessToken);
  NSLog(@" refreshToken: %@", resp.refreshToken);
  NSLog(@" expiration: %@", resp.expiration);
// 用户数据
  NSLog(@" name: %@", resp.name);
  NSLog(@" iconurl: %@", resp.iconurl);
  NSLog(@" gender: %@", resp.gender);
 // 第三方平台SDK原始数据
  NSLog(@" originalResponse: %@", resp.originalResponse);

}];
}          

你可能感兴趣的:(iOS友盟第三方登录及分享)