iOS 学习 - 13.微信分享链接、QQ 分享图片
准备工作---原文来自这个
首先要在微信开放平台申请 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 分享图片的更多相关文章
- 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签
微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...
- Android 微信分享与QQ分享功能
微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~ 一.微信分享 微信分享功能需要先在微信开放平台注册应用并 ...
- apiCloud 三方分享,微信好友分享,微信朋友圈分享,QQ分享,微博分享
首先查看我的这篇有关三方登录的博客,地址是http://www.cnblogs.com/gqx-html/p/8303567.html,配置完三方数据后可以从上一篇文章中的链接跳转到各个登录查看api ...
- iOS学习13之OC NSString类
C语言中,字符串是有char(ASC||码)字符组成. OC中,字符串是由unichar(Unicode)字符组成. 1.字符串(NSString) NSString:不可变字符串,即:创建以后,内容 ...
- h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
微信已经成为我们日常聊天联系基本的必备工具,所以小菜我首先介绍一下如何调用微信的分享功能.其实除了可以在微信上分享到朋友圈和发送给好友,微信的分享接口还提供了分享到QQ和分享到腾讯微博等,就是在页面的 ...
- iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现
本文章源码地址: https://github.com/zhonggaorong/QQLoginDemo 项目搭建参考: (包含QQ登录源码下载 . QQ sdk集成) http://blog.cs ...
- 微信公众号的分享接口,分享提示config:fail,invalid signature的解决办法(2017年12月)
微信中打开网页,使用微信右上角菜单中自带的分享功能的经历及总结: 最开始,微信分享页面时,直接读取页面的标题(title)和页面中的第一张符合条件的图片[此种方式在2017-03-29之前管用,这一天 ...
- c#微信开发,使用JS-SDK自定义分享功能,分享朋友圈,分享给朋友等
如果一个后端开发掌握了微信开发,甚至有微信开发上线项目,这在换工作的时候 还是有竞争力的. 微信开发的资料很多,但是用asp.net c#进行微信开发好像比较少,或者资料不够完整. 使用JS-SDK自 ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
随机推荐
- Spark RDD到底是个什么东西
前言 用Spark有一段时间了,但是感觉还是停留在表面,对于Spark的RDD的理解还是停留在概念上,即只知道它是个弹性分布式数据集,其他的一概不知 有点略显惭愧.下面记录下我对RDD的新的理解. 官 ...
- ASP.NET MVC图片管理(更新)
Insus.NET在ASP.NET MVC专案中,实现了图片管理,上传,预览,显示,删除等功能,还差一个功能,就是更新图片的功能,那这次来完成它.你可以先参考前2篇<ASP.NET MVC图片管 ...
- QTableWidget详解(样式、右键菜单、表头塌陷、多选等) 2013-10-23 10:54:04
一.设置表单样式 点击(此处)折叠或打开 table_widget->setColumnCount(4); //设置列数 table_widget->horizontalHeader()- ...
- python sqlite中通过字段名获取查询结果
在连sqlite数据库时,用fetchall()查询结果,是用row[0],row[1]这样的方式来打印每列的结果 但是我想用row[“字段名”]方式查询怎么办? import sqlite3 con ...
- Asp.net中使用Server.HtmlDecode(string str)的使用
前言: 在使用Visual Studio开发web页面时,需要在GridView中绑定Table数据,并加入了CommandField, 试图,点击详情按钮是,获取GridView中Rows中Cell ...
- Winform 导入导出方法
导出时:引用 using Excel = Microsoft.Office.Interop.Excel; #region 读取excel //打开方法 public DataTable Excelto ...
- 项目中的web api知识总结
最近在做公司的项目,自己负责webapi的框架的搭建与开发,最近很忙,一直没时间对工作中遇到的知识点缺少个总结,现总结一下,对自己是个提升,如果个人的小点点小总结能对博友有帮助那也是善莫大焉. (1) ...
- Python 3 and MySQL
http://stackoverflow.com/questions/4960048/python-3-and-mysql up vote61down votefavorite 20 I am usi ...
- luogg_java学习_02_基本语法
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! 关键字 定义:被java语言赋予了特殊含义,用作专门用 ...
- [moka同学笔记]Yii2 自定义class、自定义全局函数(摘录)
1.在app\components下新建MyComponent.PHP namespace app\components; use Yii; use yii\base\Component; use y ...