友盟分享是一款比较常用的社会化分享组件,基本上分享功能是每个APP的标配,所以总结一下自己的做法以便以后用到。
首先需要到友盟官网注册开发者账户并且下载SDK http://dev.umeng.com/social/ios/sdk-download
在正式开发之前,还需要登录账户创建应用,应用创建好后会得到一个appKey
拿到这个key后我们就可以开始为项目加入分享功能了。
正式开始 》》》》》》》》》》》》》》》》》》》
1. 把下载下来的SDK文件加入项目
2. 配置好之后打开 AppDelegate.m
导入头文件
#import "UMSocial.h" #import "UMSocialWechatHandler.h" //微信 #import "UMSocialQQHandler.h" //QQ #import "UMSocialSinaHandler.h" //微博
//在 didFinishLaunchingWithOptions 这个方法里面写
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //设置友盟的key [UMSocialData setAppKey:@"5615e576e0f55a99999999dd"]; #pragma mark - 根据需求选择是否设置下面的方法(各平台的appid需要到各平台去注册开发者来获得) //设置微信AppId、appSecret,需要分享的url [UMSocialWechatHandler setWXAppId:@"wx328cf0fe2199999f" appSecret:@"404b10ad9b3f6c8eb1e227999999cc8" url:@"http://123.123.123.123"]; //设置QQ,QQ空间 [UMSocialQQHandler setQQWithAppId:@"1104659999" appKey:@"dUZBM41d3Z3sKFCc" url:@"http://123.123.123.123"]; //sina(url为新浪微博开发者后台设置的安全地址,此处可传nil) [UMSocialSinaHandler openSSOWithRedirectURL:nil]; return YES; }
//要使用各平台SSO的话要添加以下2个方法
- (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]; }
3. 在要进行分享的ViewController对应的点击方法里开启分享
//如果没安装QQ和微信需要隐藏 [UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatSession, UMShareToWechatTimeline]]; //弹出默认样式的分享页面 [UMSocialSnsService presentSnsIconSheetView:self appKey:@"5615e576e0f55a99999999dd" shareText:@"你要分享的文字" shareImage:[UIImage imageNamed:@"icon.png"] shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToQQ,UMShareToQzone,UMShareToWechatSession,UMShareToWechatTimeline,nil] delegate:self];
分享之后的回调(可选)
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response { //根据`responseCode`得到发送结果,如果分享成功 if(response.responseCode == UMSResponseCodeSuccess) { NSLog(@"分享成功"); } }
4. 添加URL scheme
完成以上步骤后,恭喜你的项目应经具备基本的分享功能。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
如果要自定义分享界面的样式可以用下面的方法
[[UMSocialControllerService defaultControllerService] setShareText:@"分享内嵌文字" shareImage:[UIImage imageNamed:@"icon"] socialUIDelegate:self]; //设置分享内容和回调对象(UMShareToSina、UMShareToQQ、UMShareToQzone、UMShareToWechatSession、UMShareToWechatTimeline) [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(self,[UMSocialControllerService defaultControllerService],YES);
[WXApi isWXAppInstalled]
[TencentOAuth iphoneQQInstalled]
需要导入
#import <TencentOpenAPI/TencentOAuth.h> #import "WXApi.h"