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

首先要在微信开放平台申请 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 学习 - 13.微信分享链接、QQ 分享图片的更多相关文章

  1. 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签

    微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...

  2. Android 微信分享与QQ分享功能

    微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~ 一.微信分享 微信分享功能需要先在微信开放平台注册应用并 ...

  3. apiCloud 三方分享,微信好友分享,微信朋友圈分享,QQ分享,微博分享

    首先查看我的这篇有关三方登录的博客,地址是http://www.cnblogs.com/gqx-html/p/8303567.html,配置完三方数据后可以从上一篇文章中的链接跳转到各个登录查看api ...

  4. iOS学习13之OC NSString类

    C语言中,字符串是有char(ASC||码)字符组成. OC中,字符串是由unichar(Unicode)字符组成. 1.字符串(NSString) NSString:不可变字符串,即:创建以后,内容 ...

  5. h5怎么做分享到QQ 、朋友圈、微信 、微博等功能

    微信已经成为我们日常聊天联系基本的必备工具,所以小菜我首先介绍一下如何调用微信的分享功能.其实除了可以在微信上分享到朋友圈和发送给好友,微信的分享接口还提供了分享到QQ和分享到腾讯微博等,就是在页面的 ...

  6. iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现

    本文章源码地址: https://github.com/zhonggaorong/QQLoginDemo 项目搭建参考:  (包含QQ登录源码下载 . QQ sdk集成) http://blog.cs ...

  7. 微信公众号的分享接口,分享提示config:fail,invalid signature的解决办法(2017年12月)

    微信中打开网页,使用微信右上角菜单中自带的分享功能的经历及总结: 最开始,微信分享页面时,直接读取页面的标题(title)和页面中的第一张符合条件的图片[此种方式在2017-03-29之前管用,这一天 ...

  8. c#微信开发,使用JS-SDK自定义分享功能,分享朋友圈,分享给朋友等

    如果一个后端开发掌握了微信开发,甚至有微信开发上线项目,这在换工作的时候 还是有竞争力的. 微信开发的资料很多,但是用asp.net c#进行微信开发好像比较少,或者资料不够完整. 使用JS-SDK自 ...

  9. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

随机推荐

  1. Ajax 学习 - 基础学习

    <AJax - Async Javascript and xml - 异步的JavaScript和XML> 一.基础认识 AJax技术的目的:实现页面无刷新数据动态更改 优点:  + 不需 ...

  2. winform自定义日期控件,要求可以手动输入日期DatePicker

    要求:文本框中能手动输入数字,向上箭头根据鼠标位置给年月日递增,向下箭头递减 一:页面加载时: private void FlatDatePicker_Load(object sender, Even ...

  3. asp.net动态生成按钮Button控件

    1.动态生成button控件及响应服务端和客户端事件 void BindButtons(){ foreach (var item in items) { Button Btn = new Button ...

  4. C#实现二叉树的各种遍历

    1. 引言 在实际的项目中,树还是用的比较多的一种,尤其是对于具有层次结构的数据.相信很多人都学过树的遍历,比如先序遍历,后序遍历等,利用递归还是很容易理解的. 今天给大家介绍下二叉树的几种遍历算法, ...

  5. mvc jquery 修改 viewbag

    [HttpGet]        public ActionResult Modify(int id)        {            Books mod=db.Books.Where(b = ...

  6. 孙鑫MFC学习笔记18:ActiveX

    18 1.容器和服务器程序 2.InvalidateControl重绘控件 3. 4.GetBackColor获取背景色 5.GetForeColor获取前景色 6.TranslateColor进行颜 ...

  7. html的head里出现了 http://c.cnzz.com/core.php

    网站里出现了一段代码, 有点强迫症的我就受不了了: <html lang="en"> <head> <title>登录</title> ...

  8. Gym 100917J---Judgement(01背包+bitset)

    题目链接 http://codeforces.com/gym/100917/problem/J Description standard input/outputStatements The jury ...

  9. 2015暑假多校联合---Mahjong tree(树上DP 、深搜)

    题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=5379 Problem Description Little sun is an artis ...

  10. 超强教程:如何搭建一个 iOS 系统的视频直播 App?

    现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优 ...