iOS 學習 - 13.微信分享連接、QQ 分享圖片

  準備工做---原文來自這個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

轉載註明出處:http://www.cnblogs.com/asamu/p/5479537.html

相關文章
相關標籤/搜索