准备工作---原文来自这个
首先要在微信开放平台申请 AppID 和 QQ ID(我第一天晚上申请的,第二天中午就通过了),接着导入 SDK,也就是3个 .h 和一个 .a 文件,详情见这里
如果你是 copy 在自建 group 里面,
1.需要在 Build Phases - Link Binary With Libraries 里面 .a 文件,TencentOpenApi_IOS_Bundle.bundle、TencentOpenAPI.framework
2.在 Copy Bundle Resources add .h 文件
3.在 Bulid Settings - Library Search Paths "+" sdk 路径
4.加入库和框架
SystemConfiguration.framework
libz.dylib
libsqlite3.0.dylib
CoreTelephony.framwork
libc++.dylib
如果 copy 在自带 group 里面,则不需要,已经自动配置好
AppDelegate.h ,import "WXApi.h" 和 遵守协议
5.Info 下面添加 URL Types
6.添加白名单
代码片段:
#import <UIKit/UIKit.h>
#import "WXApi.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate,WXApiDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 注册id [WXApi registerApp:WXappid]; return YES; } //重写 handleOpenURL -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ return [WXApi handleOpenURL:url delegate:self] || [TencentOAuth HandleOpenURL:url]; }
NEW 一个分享的 View,包含背景图和四个分享按钮
显示主要代码:
#pragma mark -- 微信分享的是链接 - (void)wxShare:(int)n { //检测是否安装微信 if (![WXApi isWXAppInstalled]) { NSLog(@"Not installe weixi"); [self alert:@"Not installe weixi"]; }else{ SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc]init]; sendReq.bText = NO; //不使用文本信息 sendReq.scene = n; //0 = 好友列表 1 = 朋友圈 2 = 收藏 WXMediaMessage *urlMessage = [WXMediaMessage message]; urlMessage.title = KLinkTitle; urlMessage.description = KLinkDescription; UIImage *image = [UIImage imageNamed:@"maliao"]; //缩略图,压缩图片,不超过 32 KB NSData *thumbData = UIImageJPEGRepresentation(image, 0.25); [urlMessage setThumbData:thumbData]; //分享实例 WXWebpageObject *webObj = [WXWebpageObject object]; webObj.webpageUrl = KLinkURL; urlMessage.mediaObject = webObj; sendReq.message = urlMessage; //发送分享 [WXApi sendReq:sendReq]; } } #pragma mark QQ 分享的是图片 - (void)qqShare:(BOOL)flag { //检测是否安装 QQ if (![TencentOAuth iphoneQQInstalled]) { NSLog(@"请移步 Appstore 去下载腾讯 QQ 客户端"); [self alert:@"请移步 Appstore 去下载腾讯 QQ 客户端"]; }else{ _tencent = [[TencentOAuth alloc]initWithAppId:QQappid andDelegate:self]; UIImage *image = [UIImage imageNamed:@"maliao"]; //QQ 分享图片不超过 1M ,没有压缩的必要 NSData *data = UIImagePNGRepresentation(image); QQApiImageObject *imgObj = [QQApiImageObject objectWithData:data previewImageData:data title:KLinkTitle description:KLinkDescription]; SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:imgObj]; //因为分享的是联系人和空间的结合体,下面的判断其实多此一举 if (!flag){ //分享好友 QQApiSendResultCode code = [QQApiInterface sendReq:req]; NSLog(@"%d",code); }else{ //分享空间 [QQApiInterface SendReqToQZone:req]; } } }
具体代码,见 github
转载注明出处:http://www.cnblogs.com/asamu/p/5479537.html