1、去微信开发公共开发平台注册个应用(获取APPid)
2、把微信api导入工程中(这三个文件 libWeChatSDK.a 、 WXApiObject.h、 WXApi.h)
3、导入相关的库文件(官方文档有详细信息)编译出错的话检查导入libc++.dylib这个库没有
4、在appdelegate文件中导入#import “wxapi.h”文件
5、程序注册(以下几个方法在appdelegate中实现的几个方法)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. BOOL success = [WXApi registerApp:APPID]; if (success) { NSLog(@"成功"); }else{ UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"分享不成功" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil]; [alert show]; } return YES; }
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ return [WXApi handleOpenURL:url delegate:self]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ return [WXApi handleOpenURL:url delegate:self]; } - (void)onReq:(BaseReq *)req{ } - (void)onResp:(BaseResp *)resp{ if ([resp isKindOfClass:[SendMessageToWXResp class]]) { NSString *message = nil; switch (resp.errCode) { case 0: message = @"分享成功"; break; case -1: message = @"分享失败"; default: break; } UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:message delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil]; [alert show]; } }
6、在需要实现分享的地方创建
- (IBAction)goShare:(id)sender{ //如果为纯文本信息的话,执行第一个if语句的判断 if (originalImage == nil) { // [self showAlertWithTitle:@"提示" message:@"目前还没有照片"]; _scene = WXSceneTimeline; SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init]; req.text = @"这个相机怎么样"; req.bText = YES; req.scene = _scene; [WXApi sendReq:req]; return; } _scene = WXSceneTimeline; if (![WXApi isWXAppInstalled]) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请先安装微信客户端再进行分享" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; return; }else if (![WXApi isWXAppSupportApi]){ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"您的微信客户端版本太低,请先升级后再进行分享" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; return; } //分享图片的话用这个 WXMediaMessage *message = [WXMediaMessage message]; //生成缩略图(缩略图的要求小于32k) UIImage *changeimage = [self scaleImage:originalImage toScale:0.1]; [message setThumbImage:changeimage]; NSData *imagedata = UIImageJPEGRepresentation(originalImage, 1); WXImageObject *ext = [WXImageObject object]; ext.imageData = imagedata; message.description = @"这是一个微信分享"; message.mediaObject = ext; message.mediaTagName = @"WECHAT_TAG_JUMP_APP"; message.messageExt = @"这是第三方带的测试字段"; message.messageAction = @"<action>dotalist</action>"; SendMessageToWXReq* req = [[SendMessageToWXReq alloc] init]; req.bText = NO; req.text = @"这个相机怎么样"; req.message = message; req.scene = _scene; [WXApi sendReq:req]; }//生成缩略图方法
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize { UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize)); [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)]; UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage; }
这是一个基本的微信分享操作