iOS集成分享

//

//  UIViewController+Share.h

// 

//

//  Created by wzk on 2019/1/11.

//  Copyright © 2019 wzk. All rights reserved.

//

/**

 配置和参考代码:https://developer.umeng.com/docs/66632/detail/66898

 */

#import

NS_ASSUME_NONNULL_BEGIN

@interfaceUIViewController (Share)

- (void)configUSharePlatforms;

- (BOOL)application:(UIApplication*)application url:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation;

/**微信登录授权---授权并获取用户信息(获取uid、access token及用户名等)*/

- (void)getAuthWithUserInfoFromWechat;

/**QQ - 授权并获取用户信息(获取uid、access token及用户名等)*/

- (void)getAuthWithUserInfoFromQQ;

/**新浪微博 授权并获取用户信息(获取uid、access token及用户名等)*/

- (void)getAuthWithUserInfoFromSina;

/**分享文本*/

- (void)shareTextToPlatformType:(UMSocialPlatformType)platformType;

/**分享图片*/

- (void)shareImageToPlatformType:(UMSocialPlatformType)platformType;

/**图文分享*/

- (void)shareImageAndTextToPlatformType:(UMSocialPlatformType)platformType;

/**分享网页*/

- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType;

/**分享音乐*/

- (void)shareMusicToPlatformType:(UMSocialPlatformType)platformType;

/**分享视频*/

- (void)shareVedioToPlatformType:(UMSocialPlatformType)platformType;

/**分享微信表情*/

- (void)shareEmoticonToPlatformType:(UMSocialPlatformType)platformType;

/**分享微信小程序*/

- (void)shareMiniProgramToPlatformType:(UMSocialPlatformType)platformType;

@end

NS_ASSUME_NONNULL_END


//

//  UIViewController+Share.m

//  IronFish

//

//  Created by wzk on 2019/1/11.

//  Copyright © 2019 wzk. All rights reserved.

//

#import "UIViewController+Share.h"

@implementationUIViewController (Share)

- (void)configUSharePlatforms

{


    /**友盟*/

    //    [UMSocialData setAppKey:@""];

    [UMConfigure initWithAppkey:App_UMeng_AppKey channel:nil];

    /* 设置微信的appKey和appSecret */

    /**

     UMSocialPlatformType_WechatSession      = 1, //微信聊天

     UMSocialPlatformType_WechatTimeLine    = 2,//微信朋友圈

     UMSocialPlatformType_QQ                = 4,//QQ聊天页面

     UMSocialPlatformType_Qzone              = 5,//qq空间

     */


    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:App_WX_AppKey appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

    /*

     * 移除相应平台的分享,如微信收藏

     */

    //[[UMSocialManager defaultManager] removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_WechatFavorite)]];

    /* 设置分享到QQ互联的appID

     * U-Share SDK为了兼容大部分平台命名,统一用appKey和appSecret进行参数设置,而QQ平台仅需将appID作为U-Share的appKey参数传进即可。

     */

    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:APP_QQ_ID/*设置QQ平台的appID*/  appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

    /* 设置新浪的appKey和appSecret */

    //    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@""  appSecret:@"" redirectURL:@"https://"];



    [[UMSocialManager defaultManager] openLog:YES];


}

- (BOOL)application:(UIApplication*)application url:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation{

    //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响

    BOOLresult = [[UMSocialManagerdefaultManager]handleOpenURL:urlsourceApplication:sourceApplicationannotation:annotation];

    returnresult;

}

/**微信登录授权---授权并获取用户信息(获取uid、access token及用户名等)*/

- (void)getAuthWithUserInfoFromWechat

{

    [[UMSocialManager defaultManager] getUserInfoWithPlatform:UMSocialPlatformType_WechatSession currentViewController:nil completion:^(id result, NSError *error) {

        if(error) {


        }else{

            UMSocialUserInfoResponse*resp = result;


            // 授权信息

            NSLog(@"Wechat uid: %@", resp.uid);

            NSLog(@"Wechat openid: %@", resp.openid);

            NSLog(@"Wechat unionid: %@", resp.unionId);

            NSLog(@"Wechat accessToken: %@", resp.accessToken);

            NSLog(@"Wechat refreshToken: %@", resp.refreshToken);

            NSLog(@"Wechat expiration: %@", resp.expiration);


            // 用户信息

            NSLog(@"Wechat name: %@", resp.name);

            NSLog(@"Wechat iconurl: %@", resp.iconurl);

            NSLog(@"Wechat gender: %@", resp.unionGender);


            // 第三方平台SDK源数据

            NSLog(@"Wechat originalResponse: %@", resp.originalResponse);

        }

    }];

}

/**QQ - 授权并获取用户信息(获取uid、access token及用户名等)*/

- (void)getAuthWithUserInfoFromQQ

{

    [[UMSocialManager defaultManager] getUserInfoWithPlatform:UMSocialPlatformType_QQ currentViewController:nil completion:^(id result, NSError *error) {

        if(error) {


        }else{

            UMSocialUserInfoResponse*resp = result;


            // 授权信息

            NSLog(@"QQ uid: %@", resp.uid);

            NSLog(@"QQ openid: %@", resp.openid);

            NSLog(@"QQ unionid: %@", resp.unionId);

            NSLog(@"QQ accessToken: %@", resp.accessToken);

            NSLog(@"QQ expiration: %@", resp.expiration);


            // 用户信息

            NSLog(@"QQ name: %@", resp.name);

            NSLog(@"QQ iconurl: %@", resp.iconurl);

            NSLog(@"QQ gender: %@", resp.unionGender);


            // 第三方平台SDK源数据

            NSLog(@"QQ originalResponse: %@", resp.originalResponse);

        }

    }];

}

/**新浪微博 授权并获取用户信息(获取uid、access token及用户名等)*/

- (void)getAuthWithUserInfoFromSina

{

    [[UMSocialManager defaultManager] getUserInfoWithPlatform:UMSocialPlatformType_Sina currentViewController:nil completion:^(id result, NSError *error) {

        if(error) {


        }else{

            UMSocialUserInfoResponse*resp = result;


            // 授权信息

            NSLog(@"Sina uid: %@", resp.uid);

            NSLog(@"Sina accessToken: %@", resp.accessToken);

            NSLog(@"Sina refreshToken: %@", resp.refreshToken);

            NSLog(@"Sina expiration: %@", resp.expiration);


            // 用户信息

            NSLog(@"Sina name: %@", resp.name);

            NSLog(@"Sina iconurl: %@", resp.iconurl);

            NSLog(@"Sina gender: %@", resp.unionGender);


            // 第三方平台SDK源数据

            NSLog(@"Sina originalResponse: %@", resp.originalResponse);

        }

    }];

}

/**

 分享请参考链接:https://developer.umeng.com/docs/66632/detail/66825#h3-u8C03u7528u5206u4EABu9762u677F

 有分享模版设置、自定义平台等等。


 */

/**分享文本*/

- (void)shareTextToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

    //设置文本

    messageObject.text = @"社会化组件UShare将各大社交平台接入您的应用,快速武装App。";


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            NSLog(@"response data is %@",data);

        }

    }];

}

/**分享图片*/

- (void)shareImageToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    //创建图片内容对象

    UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];

    //如果有缩略图,则设置缩略图

    shareObject.thumbImage= [UIImageimageNamed:@"icon"];

    [shareObjectsetShareImage:@"https://mobile.umeng.com/images/pic/home/social/img-1.png"];


    //分享消息对象设置分享内容对象

    messageObject.shareObject= shareObject;


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            NSLog(@"response data is %@",data);

        }

    }];

}

/**图文分享*/

- (void)shareImageAndTextToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    //设置文本

    messageObject.text = @"社会化组件UShare将各大社交平台接入您的应用,快速武装App。";


    //创建图片内容对象

    UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];

    //如果有缩略图,则设置缩略图

    shareObject.thumbImage= [UIImageimageNamed:@"icon"];

    [shareObjectsetShareImage:@"https://www.umeng.com/img/index/demo/1104.4b2f7dfe614bea70eea4c6071c72d7f5.jpg"];


    //分享消息对象设置分享内容对象

    messageObject.shareObject= shareObject;


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            NSLog(@"response data is %@",data);

        }

    }];

}

/**分享网页*/

- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    //创建网页内容对象

    UMShareWebpageObject*shareObject = [UMShareWebpageObjectshareObjectWithTitle:@"分享标题"descr:@"分享内容描述"thumImage:[UIImageimageNamed:@"icon"]];

    //设置网页地址

    shareObject.webpageUrl =@"http://mobile.umeng.com/social";


    //分享消息对象设置分享内容对象

    messageObject.shareObject= shareObject;


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            NSLog(@"response data is %@",data);

        }

    }];

}

/**分享音乐*/

- (void)shareMusicToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    //创建音乐内容对象

    UMShareMusicObject*shareObject = [UMShareMusicObjectshareObjectWithTitle:@"分享标题"descr:@"分享内容描述"thumImage:[UIImageimageNamed:@"icon"]];

    //设置音乐网页播放地址

    shareObject.musicUrl = @"http://c.y.qq.com/v8/playsong.html?songid=108782194&source=yqq#wechat_redirect";

    //            shareObject.musicDataUrl = @"这里设置音乐数据流地址(如果有的话,而且也要看所分享的平台支不支持)";

    //分享消息对象设置分享内容对象

    messageObject.shareObject= shareObject;


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            NSLog(@"response data is %@",data);

        }

    }];

}

/**分享视频*/

- (void)shareVedioToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    //创建视频内容对象

    UMShareVideoObject*shareObject = [UMShareVideoObjectshareObjectWithTitle:@"分享标题"descr:@"分享内容描述"thumImage:[UIImageimageNamed:@"icon"]];

    //设置视频网页播放地址

    shareObject.videoUrl = @"http://video.sina.com.cn/p/sports/cba/v/2013-10-22/144463050817.html";

    //            shareObject.videoStreamUrl = @"这里设置视频数据流地址(如果有的话,而且也要看所分享的平台支不支持)";


    //分享消息对象设置分享内容对象

    messageObject.shareObject= shareObject;


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            NSLog(@"response data is %@",data);

        }

    }];

}

/**分享微信表情*/

- (void)shareEmoticonToPlatformType:(UMSocialPlatformType)platformType

{

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    UMShareEmotionObject *shareObject = [UMShareEmotionObject shareObjectWithTitle:@"" descr:@"" thumImage:nil];


    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"gifFile"

                                                         ofType:@"gif"];

    NSData*emoticonData = [NSDatadataWithContentsOfFile:filePath];

    shareObject.emotionData= emoticonData;

    messageObject.shareObject= shareObject;


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            NSLog(@"************Share fail with error %@*********",error);

        }else{

            if([dataisKindOfClass:[UMSocialShareResponseclass]]) {

                UMSocialShareResponse*resp = data;

                //分享结果消息

                NSLog(@"response message is %@",resp.message);


            }else{

                NSLog(@"response data is %@",data);

            }

        }

    }];

}

/**分享微信小程序*/

- (void)shareMiniProgramToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];


    UMShareMiniProgramObject*shareObject = [UMShareMiniProgramObjectshareObjectWithTitle:@"小程序标题"descr:@"小程序内容描述"thumImage:[UIImageimageNamed:@"icon"]];

    shareObject.webpageUrl=@"兼容微信低版本网页地址";

    shareObject.userName = @"小程序username,如 gh_3ac2059ac66f";

    shareObject.path = @"小程序页面路径,如 pages/page10007/page10007";

    messageObject.shareObject= shareObject;

    shareObject.hdImageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"]];

    shareObject.miniProgramType = UShareWXMiniProgramTypeRelease; // 可选体验版和开发板


    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if(error) {

            UMSocialLogInfo(@"************Share fail with error %@*********",error);

        }else{

            if([dataisKindOfClass:[UMSocialShareResponseclass]]) {

                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];

    }];

}

@end

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 我欣赏我老公 我欣赏我老公对家默默的付出,昨天下午我不在家儿子突然发烧我赶不回去,求救老公二话没说放下工作赶回家。...
    lisa_2859阅读 165评论 0 0
  • 19世纪前期积极浪漫主义文学的代表作家、法国文学史上卓越的资产阶级民主作家维克多·雨果(Victor Hugo,1...
    老海1617阅读 224评论 1 3