添加友盟SDK需要添加的静态库

***添加友盟SDK和静态库***

解压iOS SDK压缩包,将其中的UMSocial_Sdk_4.0和UMSocial_Sdk_Extra_Frameworks文件夹加入到工程中去,再添加系统framework:

Security.framework,libiconv.dylib,SystemConfiguration.framework,CoreGraphics.framework,libsqlite3.dylib,CoreTelephony.framework,libstdc++.dylib,libz.dylib。


友盟分享使用:

1.基本功能集成

在AppDelegate内设置友盟AppKey

#import "UMSocial.h"
……
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UMSocialData setAppKey:@"507fcab25270157b37000010"];//打开日志调用[UMSocialDataopenLog:YES];
}

在ViewController.m中添加实现基本分享功能的代码,各个参数的设置请参考绿字注释部分:

//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法

[UMSocialSnsService presentSnsIconSheetView:self

appKey:@"507fcab25270157b37000010"  

shareText:@"你要分享的文字" 

shareImage:[UIImage imageNamed:@"icon.png"]  

shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent, UMShareToRenren,nil]

delegate:nil];

2.使用直接分享底层接口

/**
02 发送微博内容到多个微博平台
03   
04 @param platformTypes    分享到的平台,数组的元素是`UMSocialSnsPlatformManager.h`定义的平台名的常量字符串,例如`UMShareToSina`,`UMShareToTencent`等。
05 @param content          分享的文字内容
06 @param image            分享的图片,可以传入UIImage类型或者NSData类型
07 @param location         分享的地理位置信息
08 @param urlResource      图片、音乐、视频等url资源
09 @param completion       发送完成执行的block对象
10 @param presentedController 如果发送的平台微博只有一个并且没有授权,传入要授权的viewController,将弹出授权页面,进行授权。可以传nil,将不进行授权。
11   
12  */
13   [[UMSocialDataServicedefaultDataService] postSNSWithTypes:@[UMShareToSina]content:@"今天又没有吃药!" image:[UIImage imageNamed:@"001.gif"] location:nilurlResource:nilpresentedController:self completion:^(UMSocialResponseEntity *response) {
14 if (response.responseCode == UMSResponseCodeSuccess) {
15 NSLog(@"respon%@",response);
16 NSLog(@"分享成功!");


3.分享url资源

1 //根据url创建一个UMSocialUrlResource对象;resourceType:多媒体资源类型,图片、音乐或者视频;urlString:url字符串
2 UMSocialUrlResource *urlResource = [[UMSocialUrlResourcealloc]initWithSnsResourceType:UMSocialUrlResourceTypeImageurl:@"http://img0.pcgames.com.cn/pcgames/1407/07/4057451_1_thumb.jpg"];
3 //分享url资源
4     [[UMSocialDataServicedefaultDataService]postSNSWithTypes:@[UMShareToSina]content:@"Chinajoy的萌妹子" image:nillocation:nilurlResource:urlResource presentedController:selfcompletion:^(UMSocialResponseEntity *response) {
5 if (response.responseCode == UMSResponseCodeSuccess) {
6 NSLog(@"分享成功!");
7 }}];

效果如下:

友盟社会化组件4.分享本地动态gif图片

把本地的gif图片声称NSData对象,再进行分享,参考如下方法:

1 NSString *path = [[NSBundlemainBundle]pathForResource:@"001"ofType:@"gif"];
2 NSData *gifData = [NSDatadataWithContentsOfFile:path];
3 [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"今天一直都要萌萌哒!" shareImage:gifData shareToSnsNames:nildelegate:self];

     5.摇一摇截屏分享

实现摇一摇截图分享需要导入两个头文件,功能实现如下:

01 #import "UMSocialShakeService.h"
02 #import "UMSocialScreenShoter.h"
03 /**
04 设置响应摇一摇事件,并且弹出分享页面
05   
06 @param snsTypes 要分享的平台类型名,例如@[UMShareToSina,UMShareToTencent,UMShareToWechatSession]
07 @param shareText 分享内嵌文字
08 @param screenShoter 摇一摇分享用到的截屏对象
09 @param controller  出现分享界面所在的ViewController
10 @param delegate 实现摇一摇后,或者分享完成后的回调对象,如果不处理这些事件,可以设置为nil
11      */
12     [UMSocialShakeServicesetShakeToShareWithTypes:@[UMShareToTencent,UMShareToSina,UMShareToRenren]shareText:@"摇一摇"screenShoter:[UMSocialScreenShoterDefaultscreenShoter] inViewController:selfdelegate:nil];
13 //设置摇一摇灵敏度
14     [UMSocialShakeServicesetShakeThreshold:1.0];

手机端摇一摇出现如下界面:

友盟社会化组件


6.进入授权信息页面

个人中心的登录账号可以选择下面已经授权的平台登录

1 UINavigationController *accountViewController = [[UMSocialControllerServiceCommentdefaultControllerService] getSocialAccountController];
2 [selfpresentModalViewController:accountViewController animated:YES];

效果图如下:

友盟社会化组件


7.获取授权用户信息
//判断是否授权
02 BOOL isOauth = [UMSocialAccountManagerisOauthAndTokenNotExpired:UMShareToSina];
03 if (isOauth == YES) {
04 //授权成功,获取微博平台账户信息
05 NSDictionary *snsAccountDic = [UMSocialAccountManagersocialAccountDictionary];
06 //创建一个微博账户对象
07 UMSocialAccountEntity *sinaAccount = [snsAccountDic valueForKey:UMShareToSina];
08 NSLog(@"sina name is %@, icon URL is %@",sinaAccount.userName,sinaAccount.iconURL);
09 //获取用户微博账号详细信息
10         [[UMSocialDataServicedefaultDataService]requestSnsInformation:UMShareToSinacompletion:^(UMSocialResponseEntity *response) {
11 NSLog(@"response is %@",response.data);
12 self.textView.text = [response.datadescription];
13         }];
14     }else{
15 //未授权,进入授权页面
16         [UMSocialSnsPlatformManagergetSocialPlatformWithName:UMShareToSina].loginClickHandler(self,[UMSocialControllerServicedefaultControllerService],YES,^(UMSocialResponseEntity *response){
17 if (response.responseCode == UMSResponseCodeSuccess) {
18 //获取微博用户名、uid、token等
19 UMSocialAccountEntity *snsAccount = [[UMSocialAccountManagersocialAccountDictionary] valueForKey:UMShareToSina];
20 NSLog(@"username is %@, uid is %@, token is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken); }});}

8.社会化操作栏
//初始化一个`UMSocialData`对象,identifier是一个`UMSocialData`对象的标识符,相同标识符的`UMSocialData`拥有相同的属性
2 UMSocialData *socialData =[[UMSocialDataalloc]initWithIdentifier:@"A Book Named BILI"];
3 UMSocialBar *socialBar = [[UMSocialBaralloc]initWithUMSocialData:socialData withViewController:self];
4     socialBar.center = CGPointMake(160, 435);
5 [self.viewaddSubview:socialBar];

在屏幕的下方会出现这样的一个操作栏,从左往右依次是评论、喜欢、分享、用户信息:

友盟社会化组件




DEMO展示

01 - (IBAction)share:(id)sender {
02 //使用分享API(自动授权后,进入编辑页面)
03 //    [[UMSocialControllerService defaultControllerService]setShareText:@"今天又没有吃药!" shareImage:[UIImage imageNamed:@"001.gif"] socialUIDelegate:self];
04 //    [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(self,[UMSocialControllerService defaultControllerService],YES);
05   
06   
07     [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"好开心啊,今天又没有吃药!" shareImage:[UIImage imageNamed:@"001.gif"] shareToSnsNames:[NSArray arrayWithObjects:UMShareToWechatSession,UMShareToQzone,UMShareToSina,UMShareToTencent,UMShareToRenren,nil] delegate:nil];
08 }
09 //直接分享底层接口
10 - (IBAction)postShare:(id)sender {
11 //直接发送分享,如果未授权,则跳转到授权页面
12     [[UMSocialDataServicedefaultDataService] postSNSWithTypes:@[UMShareToSina]content:@"今天又没有吃药!" image:[UIImage imageNamed:@"001.gif"] location:nilurlResource:nilpresentedController:self completion:^(UMSocialResponseEntity *response) {
13 if (response.responseCode == UMSResponseCodeSuccess) {
14 NSLog(@"respon%@",response);
15 NSLog(@"分享成功!");
16         }
17     }];
18   
19 }
20   
21 - (IBAction)shareUrlResource:(id)sender {
22 //设置URL分享内容
23 //[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://img0.pcgames.com.cn/pcgames/1407/07/4057451_1_thumb.jpg"];
24 //[UMSocialSnsService presentSnsIconSheetView:self appKey:@"53cde22c56240b55aa02368c" shareText:@"Chinajoy的萌妹子" shareImage:nil shareToSnsNames:@[UMShareToWechatSession,UMShareToQzone,UMShareToSina,UMShareToTencent,UMShareToRenren] delegate:nil];
25   
26 //根据url创建一个UMSocialUrlResource对象;resourceType:多媒体资源类型,图片、音乐或者视频;urlString:url字符串
27 UMSocialUrlResource *urlResource = [[UMSocialUrlResourcealloc]initWithSnsResourceType:UMSocialUrlResourceTypeImageurl:@"http://img0.pcgames.com.cn/pcgames/1407/07/4057451_1_thumb.jpg"];
28 //分享url资源
29     [[UMSocialDataServicedefaultDataService]postSNSWithTypes:@[UMShareToSina]content:@"Chinajoy的萌妹子" image:nillocation:nilurlResource:urlResource presentedController:selfcompletion:^(UMSocialResponseEntity *response) {
30 if (response.responseCode == UMSResponseCodeSuccess) {
31 NSLog(@"分享成功!");
32             }
33         }];
34 }
35   
36 - (IBAction)shareGif:(id)sender {
37 NSString *path = [[NSBundlemainBundle]pathForResource:@"001"ofType:@"gif"];
38 NSData *gifData = [NSDatadataWithContentsOfFile:path];
39     [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"今天一直都要萌萌哒!" shareImage:gifData shareToSnsNames:nildelegate:self];
40 }
41   
42 - (IBAction)shakeAndShare:(id)sender {
43     [UMSocialShakeServicesetShakeToShareWithTypes:nil
44 shareText:nil
45 screenShoter:nil
46 inViewController:nil
47 delegate:self];
48 }
49   
50 - (IBAction)shakeScreenShoot:(id)sender {
51 /**
52 设置响应摇一摇事件,并且弹出分享页面
53   
54 @param snsTypes 要分享的平台类型名,例如@[UMShareToSina,UMShareToTencent,UMShareToWechatSession]
55 @param shareText 分享内嵌文字
56 @param screenShoter 摇一摇分享用到的截屏对象
57 @param controller  出现分享界面所在的ViewController
58 @param delegate 实现摇一摇后,或者分享完成后的回调对象,如果不处理这些事件,可以设置为nil
59      */
60     [UMSocialShakeServicesetShakeToShareWithTypes:@[UMShareToTencent,UMShareToSina,UMShareToRenren]shareText:@"摇一摇"screenShoter:[UMSocialScreenShoterDefaultscreenShoter] inViewController:selfdelegate:nil];
61 //设置摇一摇灵敏度
62     [UMSocialShakeServicesetShakeThreshold:1.0];
63 }
64 - (IBAction)login:(id)sender {
65 UINavigationController *accountViewController = [[UMSocialControllerServiceCommentdefaultControllerService] getSocialAccountController];
66     [selfpresentModalViewController:accountViewController animated:YES];
67 }


遇到问题

在分享url资源的时候,笔者使用了setResourceType这个方法来设置url图片为分享内容并且发送了一个分享,分享以后发现其它分享方式的图片都变成了这个url图片,如果只是需要这一个分享使用的,而不改变其它分享方式的图片,则需要创建一个UMSocialUrlResource对象,用postSNSWithTypes方法发送分享。详情可以参考demo中的shareUrlResource方法。




开发文档

友盟社会化组件API列表下载地址:

http://dev.umeng.com/system/resources/W1siZiIsIjIwMTQvMDcvMDIvMTZfMTJfNTJfOTk3X1VNU29jaWFsX1Nka19BcGlfUmV

mZXJlbmNlLnppcCJdXQ/UMSocial_Sdk_Api_Reference.zip

iOS SDK下载时可选一个Demo测试源码工程,可以参考这个工程和API文档完成项目集成。


特此声明:此内容整理于DevStore评测内容

感谢DevStore提供的内容供广大开发者参考


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值