添加友盟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) {
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];
效果图如下:
//判断是否授权
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); }});}
//初始化一个`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提供的内容供广大开发者参考
- 添加友盟SDK需要添加的静态库
- 添加友盟SDK和静态库
- Yocto tips (18): Yocto SDK Toolchian中静态库的添加
- 需要添加的依赖
- 在WinCE的C#编程中,需要静态调用C++的动态库,需要添加using System.Runtime.InteropServices
- 添加静态库
- xcode7添加.dylib静态库的解决办法
- Fragment的静态添加和动态添加
- 静态路由表的添加
- NETBEANS项目添加静态库
- svn 添加 .a静态库
- Unity接入友盟SDK后,添加打开安卓APP的功能 遇到的问题
- STM32如何添加需要的库到工程
- 为VS2005工程添加新的SDK
- 添加源代码到你的sdk中
- 为VS2005工程添加新的SDK
- 新版SDK自动添加PlaceholderFragment的思考
- 项目添加静态库文件的三种方法
- HDU1066 Last non-zero Digit in N!
- window逆向源码
- const 在c和c++中的区别
- 十款不容错过的Swift iOS开源项目
- Period (poj 1961&&hdu 1358)KMP
- 添加友盟SDK需要添加的静态库
- 继承与派生
- iOS界面规范
- C 编译、链接、加载
- linux 学习日记一——ubuntu14.04安装
- 维度约间
- POJ 1860 Currency Exchange(最短路)
- codeforces 327A
- Android_Date显示时间格式_141027