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 ...
随机推荐
- DedeCMS学习
也许有些读者并不了解dedecms,这里简单介绍一下:DedeCMS是一个自由和开放源码的内容管理系统,它是一个可以独立使用的内容发布系统(CMS).织梦内容管理系统(DedeCms) 以简单.实用. ...
- ASP.NET MVC 四种传值方法
1.后台传值: public class DataController : Controller { // GET: Data public ActionResult Index() { //1 Vi ...
- C语言学习010:fopen读写文件
在文件input.csv文件中,我们有数据如下 Apple Pear Litchis Pineapple Watermelon 现在我们将input.csv文件下的读取并写入到output.csv文件 ...
- HTML的select控件美化
HTML的select控件美化 CSS: .div-select { border: solid 1px #999; height: 40px; line-height: 40px; cursor: ...
- SQL SERVER与C#中数据类型的对应关系
对应关系表 SQL Server2000 http://hovertree.com/menu/sqlserver/ C# CodeSmith 数据类型 取值范围 数据类型 取值范围 空值代替值 数据类 ...
- 说说这篇「我为什么从python转向go
作者 CMGS2015.05.17 15:47* 写了7891字,被143人关注,获得了97个喜欢 说说这篇「我为什么从python转向go」 字数3748 阅读24227 评论21 喜欢81 恩看了 ...
- Delphi 10.1 Berlin UTF8String Test
Delphi 10.1 Berlin UTF8String Test procedure TForm1.Button1Click(Sender: TObject); var s: UTF8String ...
- 框架Spring笔记系列 一 基础
主题:Spring 1.什么样的问题,使得Spring框架应用而生?使用Spring解决了那些问题? 2.
- UVA 253 Cube painting
大致题意:有三种颜色,一个立方体6面都可以涂一种颜色.现在给出两个每个面都涂好颜色的立方体,判断这两个立方体通过旋转是否相等. 立方体的旋转出来的结果有很多,首先可以0,1,2,3,4,5(顺序是:上 ...
- extern的用法
extern作为外部函数声明的用法: 1. 可以扩展函数的应用范围: 107.h #ifndef _107H_ #def _107H_ extern void func(); #endif 107.c ...