设为首页 加入收藏

TOP

iOS 学习 - 13.微信分享链接、QQ 分享图片
2017-10-13 10:33:39 】 浏览:367
Tags:iOS 学习 13. 分享 链接 图片

  准备工作---原文来自这个

首先要在微信开放平台申请 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

 

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇iOS sqlite3 的基本使用(增 删 改.. 下一篇数组去重方法总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目