iOS之友盟分享

在我们的项目中我们经常会使用到第三方分享,最近做项目的时候我使用了友盟实现第三方分享,下面说说我集成友盟实现第三方分享的过程,有图有真相。

1.登录http://www.umeng.com 注册一个账号。
2.点击红色箭头指向的地方,创建一个应用。

iOS之友盟分享_第1张图片
1389022-6546d07633ed34b5.png

3.按照步骤填写

iOS之友盟分享_第2张图片
1389022-826f159d54f935f9.png

4.将生成的AppKey保存下来,待会儿在你的项目中会使用到。

5.好了现在我们开始集成友盟。

下载的SDK解压以后,例如我将UMSocial_Sdk_4.4和UMSocial_Sdk_Extra_Frameworks拖入项目中,拖入以后command+B以后会发现有错,你需要手动添加下面两个依赖库。

1389022-a657b78c60939aae.png

现在再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 )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.效果图:

iOS之友盟分享_第3张图片
1389022-de57387b396dba46.png

参考.友盟分享


 // 注册Umeng分享的AppKey
    [UMSocialData setAppKey:@"56c464a867e58e6bea002a65"];


UMSocialUIDelegate


- (void) shareButtonClicked:(CDDetailView *) detailView {
    CDAppDetailModel *model = detailView.model;
    [UMSocialSnsService presentSnsIconSheetView:self appKey:nil shareText:[NSString stringWithFormat:@"%@ - %@", model.name, model.desc] shareImage:_detailView.appIconImage shareToSnsNames:nil delegate:self];
}

-(void) didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *) response {
    if (response.responseCode == UMSResponseCodeSuccess) {
        [KVNProgress showSuccessWithStatus:@"分享成功"];
    }
    else {
        [KVNProgress showErrorWithStatus:@"分享失败"];
    }
}

你可能感兴趣的:(iOS之友盟分享)