準備工做---原文來自這個html
首先要在微信開放平臺申請 AppID 和 QQ ID(我第一天晚上申請的,次日中午就經過了),接着導入 SDK,也就是3個 .h 和一個 .a 文件,詳情見這裏c++
若是你是 copy 在自建 group 裏面,git
1.須要在 Build Phases - Link Binary With Libraries 裏面 .a 文件,TencentOpenApi_IOS_Bundle.bundle、TencentOpenAPI.frameworkgithub
2.在 Copy Bundle Resources add .h 文件web
3.在 Bulid Settings - Library Search Paths "+" sdk 路徑sql
4.加入庫和框架微信
SystemConfiguration.frameworkapp
libz.dylib框架
libsqlite3.0.dylibiphone
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