在我们的项目中我们经常会使用到第三方分享,最近做项目的时候我使用了友盟实现第三方分享,下面说说我集成友盟实现第三方分享的过程,有图有真相。
1.登录http://www.umeng.com 注册一个账号。
2.点击红色箭头指向的地方,创建一个应用。
3.按照步骤填写
4.将生成的AppKey保存下来,待会儿在你的项目中会使用到。
5.好了现在我们开始集成友盟。
下载的SDK解压以后,例如我将UMSocial_Sdk_4.4和UMSocial_Sdk_Extra_Frameworks拖入项目中,拖入以后command+B以后会发现有错,你需要手动添加下面两个依赖库。
现在再command+B就不会报错了。
6.在你的项目中打开AppDelegate.m
记得在使用友盟分享的时候导入这个头文件,哈哈。
#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//在这里填写你刚才得到的AppKey
[UMSocialData setAppKey:@"56f609fa67e58e9015000124"];
return YES;
}
7.在需要调出友盟分享的地方调用下面这个接口
/**
弹出一个分享列表的类似iOS6的UIActivityViewController控件
@param controller 在该controller弹出分享列表的UIActionSheet
@param appKey 友盟appKey
@param shareText 分享编辑页面的内嵌文字
@param shareImage 分享内嵌图片,用户可以在编辑页面删除
@param snsNames 你要分享到的sns平台类型,该NSArray值是`UMSocialSnsPlatformManager.h`定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等
@param delegate 实现分享完成后的回调对象,如果不关注分享完成的状态,可以设为nil
*/
+(void)presentSnsIconSheetView:(UIViewController *)controller
appKey:(NSString *)appKey
shareText:(NSString *)shareText
shareImage:(id)shareImage
shareToSnsNames:(NSArray *)snsNames
delegate:(id <UMSocialUIDelegate>)delegate;
我是点击分享按钮以后弹出分享菜单的,大家根据自己的项目需要自己决定。
我实现的代码:
[UMSocialSnsService presentSnsIconSheetView:self appKey:nil
shareText:@"XXX" shareImage:[UIImage imageNamed:@"Share_20.16690647482px_1183447_easyicon.net"]
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,nil]
delegate:nil];
说明一下:
如果你在AppDelegate中已经填写了AppKey就不需要再填写appKey了,填了也没关系。
shareToSnaNames中你可以填nil,效果就是友盟上面所有的分享平台都会显示出来。
一般我们用不到那么多,所以我们把需要的写成一个数组填写上去就可以了。
参考:
UMShareToSina、UMShareToTencent、UMShareToWechatSession、
UMShareToWechatTimeline、
UMShareToQzone、UMShareToQQ、UMShareToRenren、
UMShareToDouban、UMShareToEmail、UMShareToSms、UMShareToFacebook、UMShareToTwitter,
分别代表新浪微博、腾讯微博、微信好友、微信朋友圈、QQ空间、手机QQ、人人网、豆瓣、电子邮箱、短信、Facebook、Twitter
8.效果图: