iOS:友盟SDK第三方登录 分享及友盟统计的使用
2015-12-14 18:20
639 查看
下面就是关于使用友盟社会化组件的详细过程:
集成友盟社会化组件的主要流程是: 注册友盟帐号=》创建推送应用=》下载SDK=》集成开发=》测试应用=》发布应用
1、注册友盟账号
友盟开发者账号的注册地址:http://www.umeng.com/users/sign_up
2、创建新应用
使用注册的友盟账号登录后进入我的产品,在屏幕左方会看到添加应用的按钮,点击选择添加新应用,提交成功后会获得Appkey然后就可以进入测试。
3、下载iOS
SDK
友盟社会化组件iOS SDK的下载地址:http://dev.umeng.com/social/ios/sdk-download ,进入后选择下载根据自己需要选择模块
4、集成开发
1)新建一个工程
2)添加友盟SDK和静态库
解压iOS SDK压缩包,将其中的UMSocial_Sdk_4.0和UMSocial_Sdk_Extra_Frameworks文件夹加入到工程中去,再添加系统framework:
3)导入头文件,添加测试文件为了引用头文件方便,在工程的.pch文件内添加如下代码:
UMSocial头文件内包含众多社会化分析库文件的引用,直接引用一个UMSocial就可以使用全部功能,不用重复导入,很方便,APPKEY就是申请应用获得的Appkey。
为了测试分享图片的功能,在工程内加入了一个名为”108.png”的静态图片和一个名为”001.gif”的动态图片。
4)基本功能集成
首先在AppDelegate内设置AppKey,在didFinishLauchingWIthOptions方法内添加如下代码:
在ViewController.m中添加实现基本分享功能的代码,各个参数的设置请参考绿字注释部分:
会有如下效果:
5)使用直接分享底层接口
发送成功后进入新浪微博查看自己发送的微博,看到如下界面:
6)分享url资源
效果如下:
7)分享本地动态gif图片
把本地的gif图片声称NSData对象,再进行分享,参考如下方法:
效果如下(请原谅我只能截取到静态图):
8)摇一摇截屏分享实现摇一摇截图分享需要导入两个头文件,功能实现如下:
手机端摇一摇出现如下界面:
9)进入授权信息页面
个人中心的登录账号可以选择下面已经授权的平台登录
效果图如下:
10)获取授权用户信息
11)社会化操作栏
在屏幕的下方会出现这样的一个操作栏,从左往右依次是评论、喜欢、分享、用户信息:
2、编辑分享内容,可以切换用户和@好友
3、分享URL资源:
2、用户个人中心和登录管理授权:
3、评论某条消息并分享:
4、DEMO展示
5、测试日志
进入到分享页面的日志:
发送分享时的日志:
分享后返回结果的日志:
在分享url资源的时候,笔者使用了setResourceType这个方法来设置url图片为分享内容并且发送了一个分享,分享以后发现其它分享方式的图片都变成了这个url图片,如果只是需要这一个分享使用的,而不改变其它分享方式的图片,则需要创建一个UMSocialUrlResource对象,用postSNSWithTypes方法发送分享。详情可以参考demo中的shareUrlResource方法。
友盟社会化组件集成比较简单,用户只需引用友盟社会化类,直接调用API方法即可,处理返回内容也比较轻松。
友盟社会化组件API列表下载地址:点击下载
iOS SDK下载时可选一个Demo测试源码工程,可以参考这个工程和API文档完成项目集成。
友盟社会化组件可以帮助移动应用快速集成分享、登录、评论、喜欢等社交功能,并提供数据统计分析服务。下面是笔者对其试用过程,总结出以下特点:
1.友盟社会化组件是一款跨Android,iOS,Windows Phone三大平台的社会化分享组件,并且同时支持Cocos2d-x和PhoneGap平台的开发;
2.友盟分享的接口简便,如果只使用最基本的分享功能,只需不到半个小时就可以为APP增加新浪微博、腾讯微博等平台的分享功能;
3.友盟分享支持的社交平台很多,截止到目前未知,友盟分享已经支持了14种社交平台甚至包括来往、易信这些用户比较少用到的平台,提供的平台比较广泛;
4.友盟分享可以分享url资源,例如图片、音乐、视频等,另外还有摇一摇截屏分享功能;
5.友盟分享提供了一个登录授权接口,可以查看各个平台的授权情况,用户可以对授权账号进行增加、更改、删除,并可以对各个平台进行授权和解除授权,方便管理;
6.用户可以针对一篇文章、一首歌曲等内容点击喜欢或不喜欢、或评论并分享,友盟也提供了一个操作栏来提供提供这些功能,使用起来非常简便;
7.除了分享功能外,友盟还提供有一个后台数据统计分析功能,可以对用户的分享情况进行统计分析;
8.友盟分享目前最新版本为iOS SDK v4.1,更新时间为2014/08/18,更新及时。
如果开发者需要一款支持多种平台分享的第三方服务,那么友盟社会化分享很不错,可供用户自定义的部分也比较多。友盟的评论分享功能做的很好,在APP中集成的话实用性很高。
一、集成过程
集成友盟社会化组件的主要流程是: 注册友盟帐号=》创建推送应用=》下载SDK=》集成开发=》测试应用=》发布应用1、注册友盟账号
友盟开发者账号的注册地址:http://www.umeng.com/users/sign_up
2、创建新应用
使用注册的友盟账号登录后进入我的产品,在屏幕左方会看到添加应用的按钮,点击选择添加新应用,提交成功后会获得Appkey然后就可以进入测试。
3、下载iOS
SDK
友盟社会化组件iOS SDK的下载地址:http://dev.umeng.com/social/ios/sdk-download ,进入后选择下载根据自己需要选择模块
4、集成开发
1)新建一个工程
2)添加友盟SDK和静态库
解压iOS SDK压缩包,将其中的UMSocial_Sdk_4.0和UMSocial_Sdk_Extra_Frameworks文件夹加入到工程中去,再添加系统framework:
123 | Security.framework,libiconv.dylib,SystemConfiguration.framework,CoreGraphics.framework,libsqlite3.dylib,CoreTelephony.framework,libstdc++.dylib,libz.dylib。 |
1 2 | #import "UMSocial.h" #define APPKEY @"53cde22c56240b55aa02368c" |
为了测试分享图片的功能,在工程内加入了一个名为”108.png”的静态图片和一个名为”001.gif”的动态图片。
4)基本功能集成
首先在AppDelegate内设置AppKey,在didFinishLauchingWIthOptions方法内添加如下代码:
123 | [UMSocialDatasetAppKey:APPKEY];//打开调试日志[UMSocialDataopenLog:YES]; |
1 2 3 4 5 6 7 8 9 10 | /** 弹出一个分享列表的UITableViewController @param controller 在该controller弹出分享列表的UIActionSheet @param appKey 友盟appKey @param shareText 分享编辑页面的内嵌文字 @param shareImage 可以传入`UIImage`,或者`NSData`类型,分享内嵌图片,用户可以在编辑页面删除 @param snsNames 你要分享到的sns平台类型,该NSArray值是`UMSocialSnsPlatformManager.h`定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等 @param delegate 实现分享完成后的回调对象,如果不关注分享完成的状态,可以设为nil */ [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"好开心啊,今天又没有吃药!" shareImage:[UIImage imageNamed:@"001.gif"] shareToSnsNames:[NSArray arrayWithObjects:UMShareToWechatSession,UMShareToQzone,UMShareToSina,UMShareToTencent,UMShareToRenren,nil] delegate:nil]; |
5)使用直接分享底层接口
1234567891011121314151617 | /**发送微博内容到多个微博平台 @param platformTypes 分享到的平台,数组的元素是`UMSocialSnsPlatformManager.h`定义的平台名的常量字符串,例如`UMShareToSina`,`UMShareToTencent`等。@param content 分享的文字内容@param image 分享的图片,可以传入UIImage类型或者NSData类型@param location 分享的地理位置信息@param urlResource 图片、音乐、视频等url资源@param completion 发送完成执行的block对象@param presentedController 如果发送的平台微博只有一个并且没有授权,传入要授权的viewController,将弹出授权页面,进行授权。可以传nil,将不进行授权。 */ [[UMSocialDataServicedefaultDataService] postSNSWithTypes:@[UMShareToSina]content:@"今天又没有吃药!" image:[UIImage imageNamed:@"001.gif"] location:nilurlResource:nilpresentedController:self completion:^(UMSocialResponseEntity *response) {if (response.responseCode == UMSResponseCodeSuccess) {NSLog(@"respon%@",response);NSLog(@"分享成功!");}}]; |
6)分享url资源
1 2 3 4 5 6 7 | //根据url创建一个UMSocialUrlResource对象;resourceType:多媒体资源类型,图片、音乐或者视频;urlString:url字符串 UMSocialUrlResource *urlResource = [[UMSocialUrlResourcealloc]initWithSnsResourceType:UMSocialUrlResourceTypeImageurl:@"http://img0.pcgames.com.cn/pcgames/1407/07/4057451_1_thumb.jpg"]; //分享url资源 [[UMSocialDataServicedefaultDataService]postSNSWithTypes:@[UMShareToSina]content:@"Chinajoy的萌妹子" image:nillocation:nilurlResource:urlResource presentedController:selfcompletion:^(UMSocialResponseEntity *response) { if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); }}]; |
7)分享本地动态gif图片
把本地的gif图片声称NSData对象,再进行分享,参考如下方法:
123 | NSString *path = [[NSBundlemainBundle]pathForResource:@"001"ofType:@"gif"];NSData *gifData = [NSDatadataWithContentsOfFile:path];[UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"今天一直都要萌萌哒!" shareImage:gifData shareToSnsNames:nildelegate:self]; |
8)摇一摇截屏分享实现摇一摇截图分享需要导入两个头文件,功能实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #import "UMSocialShakeService.h" #import "UMSocialScreenShoter.h" /** 设置响应摇一摇事件,并且弹出分享页面 @param snsTypes 要分享的平台类型名,例如@[UMShareToSina,UMShareToTencent,UMShareToWechatSession] @param shareText 分享内嵌文字 @param screenShoter 摇一摇分享用到的截屏对象 @param controller 出现分享界面所在的ViewController @param delegate 实现摇一摇后,或者分享完成后的回调对象,如果不处理这些事件,可以设置为nil */ [UMSocialShakeServicesetShakeToShareWithTypes:@[UMShareToTencent,UMShareToSina,UMShareToRenren]shareText:@"摇一摇"screenShoter:[UMSocialScreenShoterDefaultscreenShoter] inViewController:selfdelegate:nil]; //设置摇一摇灵敏度 [UMSocialShakeServicesetShakeThreshold:1.0]; |
9)进入授权信息页面
个人中心的登录账号可以选择下面已经授权的平台登录
12 | UINavigationController *accountViewController = [[UMSocialControllerServiceCommentdefaultControllerService] getSocialAccountController];[selfpresentModalViewController:accountViewController animated:YES]; |
10)获取授权用户信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //判断是否授权 BOOL isOauth = [UMSocialAccountManagerisOauthAndTokenNotExpired:UMShareToSina]; if (isOauth == YES) { //授权成功,获取微博平台账户信息 NSDictionary *snsAccountDic = [UMSocialAccountManagersocialAccountDictionary]; //创建一个微博账户对象 UMSocialAccountEntity *sinaAccount = [snsAccountDic valueForKey:UMShareToSina]; NSLog(@"sina name is %@, icon URL is %@",sinaAccount.userName,sinaAccount.iconURL); //获取用户微博账号详细信息 [[UMSocialDataServicedefaultDataService]requestSnsInformation:UMShareToSinacompletion:^(UMSocialResponseEntity *response) { NSLog(@"response is %@",response.data); self.textView.text = [response.datadescription]; }]; }else{ //未授权,进入授权页面 [UMSocialSnsPlatformManagergetSocialPlatformWithName:UMShareToSina].loginClickHandler(self,[UMSocialControllerServicedefaultControllerService],YES,^(UMSocialResponseEntity *response){ if (response.responseCode == UMSResponseCodeSuccess) { //获取微博用户名、uid、token等 UMSocialAccountEntity *snsAccount = [[UMSocialAccountManagersocialAccountDictionary] valueForKey:UMShareToSina]; NSLog(@"username is %@, uid is %@, token is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken); }});} |
12345 | //初始化一个`UMSocialData`对象,identifier是一个`UMSocialData`对象的标识符,相同标识符的`UMSocialData`拥有相同的属性UMSocialData *socialData =[[UMSocialDataalloc]initWithIdentifier:@"A Book Named BILI"];UMSocialBar *socialBar = [[UMSocialBaralloc]initWithUMSocialData:socialData withViewController:self]; socialBar.center = CGPointMake(160, 435);[self.viewaddSubview:socialBar]; |
二、主要功能
1 、分享到各个平台:2、编辑分享内容,可以切换用户和@好友
3、分享URL资源:
三、功能特色
1、摇一摇截图分享:2、用户个人中心和登录管理授权:
3、评论某条消息并分享:
4、DEMO展示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | - (IBAction)share:(id)sender { //使用分享API(自动授权后,进入编辑页面) // [[UMSocialControllerService defaultControllerService]setShareText:@"今天又没有吃药!" shareImage:[UIImage imageNamed:@"001.gif"] socialUIDelegate:self]; // [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(self,[UMSocialControllerService defaultControllerService],YES); [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"好开心啊,今天又没有吃药!" shareImage:[UIImage imageNamed:@"001.gif"] shareToSnsNames:[NSArray arrayWithObjects:UMShareToWechatSession,UMShareToQzone,UMShareToSina,UMShareToTencent,UMShareToRenren,nil] delegate:nil]; } //直接分享底层接口 - (IBAction)postShare:(id)sender { //直接发送分享,如果未授权,则跳转到授权页面 [[UMSocialDataServicedefaultDataService] postSNSWithTypes:@[UMShareToSina]content:@"今天又没有吃药!" image:[UIImage imageNamed:@"001.gif"] location:nilurlResource:nilpresentedController:self completion:^(UMSocialResponseEntity *response) { if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"respon%@",response); NSLog(@"分享成功!"); } }]; } - (IBAction)shareUrlResource:(id)sender { //设置URL分享内容 //[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://img0.pcgames.com.cn/pcgames/1407/07/4057451_1_thumb.jpg"]; //[UMSocialSnsService presentSnsIconSheetView:self appKey:@"53cde22c56240b55aa02368c" shareText:@"Chinajoy的萌妹子" shareImage:nil shareToSnsNames:@[UMShareToWechatSession,UMShareToQzone,UMShareToSina,UMShareToTencent,UMShareToRenren] delegate:nil]; //根据url创建一个UMSocialUrlResource对象;resourceType:多媒体资源类型,图片、音乐或者视频;urlString:url字符串 UMSocialUrlResource *urlResource = [[UMSocialUrlResourcealloc]initWithSnsResourceType:UMSocialUrlResourceTypeImageurl:@"http://img0.pcgames.com.cn/pcgames/1407/07/4057451_1_thumb.jpg"]; //分享url资源 [[UMSocialDataServicedefaultDataService]postSNSWithTypes:@[UMShareToSina]content:@"Chinajoy的萌妹子" image:nillocation:nilurlResource:urlResource presentedController:selfcompletion:^(UMSocialResponseEntity *response) { if (response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功!"); } }]; } - (IBAction)shareGif:(id)sender { NSString *path = [[NSBundlemainBundle]pathForResource:@"001"ofType:@"gif"]; NSData *gifData = [NSDatadataWithContentsOfFile:path]; [UMSocialSnsServicepresentSnsIconSheetView:selfappKey:APPKEYshareText:@"今天一直都要萌萌哒!" shareImage:gifData shareToSnsNames:nildelegate:self]; } - (IBAction)shakeAndShare:(id)sender { [UMSocialShakeServicesetShakeToShareWithTypes:nil shareText:nil screenShoter:nil inViewController:nil delegate:self]; } - (IBAction)shakeScreenShoot:(id)sender { /** 设置响应摇一摇事件,并且弹出分享页面 @param snsTypes 要分享的平台类型名,例如@[UMShareToSina,UMShareToTencent,UMShareToWechatSession] @param shareText 分享内嵌文字 @param screenShoter 摇一摇分享用到的截屏对象 @param controller 出现分享界面所在的ViewController @param delegate 实现摇一摇后,或者分享完成后的回调对象,如果不处理这些事件,可以设置为nil */ [UMSocialShakeServicesetShakeToShareWithTypes:@[UMShareToTencent,UMShareToSina,UMShareToRenren]shareText:@"摇一摇"screenShoter:[UMSocialScreenShoterDefaultscreenShoter] inViewController:selfdelegate:nil]; //设置摇一摇灵敏度 [UMSocialShakeServicesetShakeThreshold:1.0]; } - (IBAction)login:(id)sender { UINavigationController *accountViewController = [[UMSocialControllerServiceCommentdefaultControllerService] getSocialAccountController]; [selfpresentModalViewController:accountViewController animated:YES]; } |
进入到分享页面的日志:
发送分享时的日志:
分享后返回结果的日志:
四、遇到的问题
在分享url资源的时候,笔者使用了setResourceType这个方法来设置url图片为分享内容并且发送了一个分享,分享以后发现其它分享方式的图片都变成了这个url图片,如果只是需要这一个分享使用的,而不改变其它分享方式的图片,则需要创建一个UMSocialUrlResource对象,用postSNSWithTypes方法发送分享。详情可以参考demo中的shareUrlResource方法。
五、上手难易
友盟社会化组件集成比较简单,用户只需引用友盟社会化类,直接调用API方法即可,处理返回内容也比较轻松。
六、开发文档
友盟社会化组件API列表下载地址:点击下载iOS SDK下载时可选一个Demo测试源码工程,可以参考这个工程和API文档完成项目集成。
七、测试点评
友盟社会化组件可以帮助移动应用快速集成分享、登录、评论、喜欢等社交功能,并提供数据统计分析服务。下面是笔者对其试用过程,总结出以下特点:1.友盟社会化组件是一款跨Android,iOS,Windows Phone三大平台的社会化分享组件,并且同时支持Cocos2d-x和PhoneGap平台的开发;
2.友盟分享的接口简便,如果只使用最基本的分享功能,只需不到半个小时就可以为APP增加新浪微博、腾讯微博等平台的分享功能;
3.友盟分享支持的社交平台很多,截止到目前未知,友盟分享已经支持了14种社交平台甚至包括来往、易信这些用户比较少用到的平台,提供的平台比较广泛;
4.友盟分享可以分享url资源,例如图片、音乐、视频等,另外还有摇一摇截屏分享功能;
5.友盟分享提供了一个登录授权接口,可以查看各个平台的授权情况,用户可以对授权账号进行增加、更改、删除,并可以对各个平台进行授权和解除授权,方便管理;
6.用户可以针对一篇文章、一首歌曲等内容点击喜欢或不喜欢、或评论并分享,友盟也提供了一个操作栏来提供提供这些功能,使用起来非常简便;
7.除了分享功能外,友盟还提供有一个后台数据统计分析功能,可以对用户的分享情况进行统计分析;
8.友盟分享目前最新版本为iOS SDK v4.1,更新时间为2014/08/18,更新及时。
八、适用人群
如果开发者需要一款支持多种平台分享的第三方服务,那么友盟社会化分享很不错,可供用户自定义的部分也比较多。友盟的评论分享功能做的很好,在APP中集成的话实用性很高。
相关文章推荐
- iOS 开发者账号申请(最新)
- IOS那些事------callBack回传的方法
- [转]【IOS-博客】IOS牛人博客一览表
- iOS-在Xcode中使用Git进行源码版本管理(五:忽略更改)
- iOS开发之自定义画板
- IOS8布局之Autolayout与Size classes(一)
- iOS-在Xcode中使用Git进行源码版本管理(四:分支)
- iOS 模态到一个有自定制Tabar的页面,tabbar消失的问题
- iOS开发总结--三方平台开发之分享
- iOS-sizeclass
- 再谈iOS 7的手势滑动返回功能
- iOS-在Xcode中使用Git进行源码版本控制(三:版本之间的比较)
- iOS开发58-iOS imageNamed和imageWithContentsOfFile区别
- 关于这些日子以来改iOS9兼容性的问题总结
- ios 监听文本框文字的变化
- iOS中的多线程
- 4.iOS多线程中,GCD技术的队列与执行方式的组合结果
- iOS恢复固件的方法
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS-在Xcode中使用Git进行源码版本控制(二:提交更改)