随着社交工具的应用范围愈来愈广,分享一些内容的功能也开始要求实现了。数组
用得比较多的第三方,好比说友盟,好比说Share等等...微信
前几天刚用友盟写了集成QQ和微信客户端的功能,以为有必要分享一下。app
在这以前,你须要有一个友盟的appkey...(木有的可去注册),并下载你所要的SDK;工具
#import "UMSocial.h"post
//设置友盟分享社会化组件appkey
[UMSocialData setAppKey:UM_appkey]; url
先说集成QQ的吧:spa
首先,在UMSocial_Sdk_Extra_Frameworks
目录下的,添加TencentOpenAPI
文件夹到工程;code
而后,根据友盟的文档,依次添加必要的framework;ci
第三步,在Xcode工程中,点击工程名-->info-->URL Types 添加一个元素,并设置URL Schemes 将appid(没有appid的去腾讯开放平台申请)转化为十六进制填进去;文档
格式为:QQ+appid的十六进制-------(单独使用QQ受权,格式为:tencent+appid);
第四步:在appdelegate中,导入头文件,并打开集成QQ开关
#import "UMSocialQQHandler.h"
//设置分享到QQ应用id和分享url连接
[UMSocialQQHandler setQQWithAppId:QQ_appid appKey:QQ_appkey url:@"http://www.umeng.com/social"];
第五步:实现系统回调的方法:
#pragma mark 系统回调方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [UMSocialSnsService handleOpenURL:url];
}
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [UMSocialSnsService handleOpenURL:url];
}
最后,点击分享按钮的时候,就能够调用方法了...
[UMSocialSnsService presentSnsIconSheetView:self appKey:UM_appkey shareText:text shareImage:nil shareToSnsNames:@[UMShareToQQ,UMShareToQzone,UMShareToTencent,UMShareToSina] delegate:self];
集成微信:
首先,在
UMSocial_Sdk_Extra_Frameworks
目录下,添加Wechat
文件夹到工程;
而后,和集成QQ第三步同样,再添加一个元素,设置URL Schemes 将微信appid(没有的去微信开放平台注册)填进去;
第三步,一样是导入头文件,打开开关;
#import "UMSocialWechatHandler.h"
//设置微信appid appSecret,分享url连接
[UMSocialWechatHandler setWXAppId:WX_appid appSecret:WX_appSecret url:@"http://www.umeng.com/social"];
(若是是单独实现微信受权,还需实现上述的系统回调方法)
最后,点击分享按钮的时候,就可调用方法了...
若不是单独实现微信分享,只须要在方法中的数组参数中,添加上微信的功能就好了。
不管是QQ仍是微信,都有分享完成的回调方法,是可选的;
//实现回调方法
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
//根据responseCode获得发送结果,若分享成功
if (response.responseCode == UMSResponseCodeSuccess) {
//获得分享到的平台名称
NSLog(@"share to sns name:%@",[[response.data allKeys] objectAtIndex:0]);
}
}
若是是直接分享到微信,则调用下面的方法:
[[UMSocialDataService defaultDataService]postSNSWithTypes:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite] content:@"分享内嵌文字" image:nil location:nil urlResource:nil completion:^(UMSocialResponseEntity *response) {
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
到如今,基本上就能够实现分享到平台的功能了。。。
效果图以下所示:
(我随便写了一个网址,没有请求到数据-------模拟器没有安装QQ和微信,点击会提示没有安装)
但愿这篇文章会对您有所帮助,有什么问题或建议,请与我联系。。。