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

来源:互联网 发布:linux启动ntp服务命令 编辑:程序博客网 时间:2024/06/10 15:20

***添加友盟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) {
14if (response.responseCode == UMSResponseCodeSuccess) {
15NSLog(@"respon%@",response);
16NSLog(@"分享成功!");


3.分享url资源

1//根据url创建一个UMSocialUrlResource对象;resourceType:多媒体资源类型,图片、音乐或者视频;urlString:url字符串
2UMSocialUrlResource *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) {
5if (response.responseCode == UMSResponseCodeSuccess) {
6NSLog(@"分享成功!");
7}}];

效果如下:

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

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

view source
print?
1NSString *path = [[NSBundlemainBundle]pathForResource:@"001"ofType:@"gif"];
2NSData *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.进入授权信息页面

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

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

效果图如下:

友盟社会化组件


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

8.社会化操作栏
//初始化一个`UMSocialData`对象,identifier是一个`UMSocialData`对象的标识符,相同标识符的`UMSocialData`拥有相同的属性
2UMSocialData *socialData =[[UMSocialDataalloc]initWithIdentifier:@"A Book Named BILI"];
3UMSocialBar *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) {
13if (response.responseCode == UMSResponseCodeSuccess) {
14NSLog(@"respon%@",response);
15NSLog(@"分享成功!");
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字符串
27UMSocialUrlResource *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) {
30if (response.responseCode == UMSResponseCodeSuccess) {
31NSLog(@"分享成功!");
32            }
33        }];
34}
35  
36- (IBAction)shareGif:(id)sender {
37NSString *path = [[NSBundlemainBundle]pathForResource:@"001"ofType:@"gif"];
38NSData *gifData = [NSDatadataWithContentsOfFile:path];
39    [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"今天一直都要萌萌哒!" shareImage:gifData shareToSnsNames:nildelegate:self];
40}
41  
42- (IBAction)shakeAndShare:(id)sender {
43    [UMSocialShakeServicesetShakeToShareWithTypes:nil
44shareText:nil
45screenShoter:nil
46inViewController:nil
47delegate: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 {
65UINavigationController *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提供的内容供广大开发者参考


0 0