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 ...
随机推荐
- 30天C#基础巩固----程序集,反射
一:认识程序集 只要是使用VS就会和程序集打交道,我们通过编辑和生产可执行程序就会自动生成程序集.那么什么事程序集呢,.net中的dll与exe文件的都是程序集(Assembly). ...
- iOS阶段学习第26天笔记(UILabel的介绍)
iOS学习(UI)知识点整理 一.关于UILabel的使用介绍 1)概念:UILabel是一个继承自UIView的用于展示文本信息的控件 2)UI中所有的控件都继承自UIView 即UIView 是U ...
- iOS阶段学习第20天笔记(MRC内存管理)
iOS学习(OC语言)知识点整理 一.OC中的内存管理 1)概念:内存管理的对象为所有继承了NSObject的对象,对基本数据(如:int .float.double...)无效 OC中采用 ...
- webapi+entityframework分享
1. webapi允许跨域的增删改查要在web.config中加入以下文字 <system.webServer> <validation validateIntegratedMode ...
- mybatis笔记2 基础理论准备
之前发了一篇mybatis的crud入门笔记,算是入门了,为了让功力加深一级,来研究下mybatis的理论知识,哈哈,以后好拿来跟技术经理吹吹牛- 按照问题来吧!个人觉得有自主意识,带着自己的问题来研 ...
- eclipse的快捷操作(转)
快捷键命令作用 快捷键序列 保存 Ctrl+S 刷新 F5 关闭 Ctrl+W 属性 Alt+Enter Format Ctrl+Shift+F 删除行 Ctrl+D 在当前行上面插入行 Ctrl+S ...
- gitlab web hook
https://pypi.python.org/pypi/glhooks/0.1.0 https://filippo.io/a-python-github-push-webhook-handler/ ...
- Spring注解@Value的用法
有时候我们在配置文件中使用配置的信息不仅需要在xml文件中使用,还可能在类中使用,这个时候,我们可使用@Value注解了: @Value("${rest.service.url}" ...
- 使用MD5WithRSA来签名和验签(.NET)
/// <summary> /// 数字签名并返回BASE64编码的字符串 /// </summary> /// <param name="contentFor ...
- activiti工作流的web流程设计器整合视频教程
本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流 ...