最近搞了个ios端的qq分享接入,总结一下接入的流程和遇到的一些值得注意的问题。

1、进入QQ后台应用管理创建应用并申请,然后下载SDK。

2、ios的sdkDemo是可以在xcode上面跑的,但是需要配置一下证书,还有就是demo不要放在中文路径下面。demo能顺利跑起来是最好的,这样在接入过程中遇到问题可以借助demo去定位,实在跑不起来问题也不大,同样可以作为很好的参考资料。

3、准备工作做好之后就按照SDK文档进行接入:

1)、添加.bundle和.framework,下载的移动应用SDK里面没有.bundle文件的话可以去移动游戏SDK里面拿,如果只是接入分享貌似.bundle也没啥作用;

2)、添加系统库:“Security.framework”,“SystemConfiguration.framework”,“CoreGraphics.Framework”,“CoreTelephony.framework”,“libiconv.tbd”,“libsqlite3.tbd”,“libstdc++.tbd”,“libz.tbd”;

3)、在Info.plist(Open As Source Code)中的LSApplicationQueriesSchemes下面添加以下白名单:

<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqzoneopensdk</string>

4)、添加URL Types,URL Schemes的内容为:tencent+QQ_APP_ID(例如:tencent123456)。

5)、添加头文件:

#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterfaceObject.h>
#import <TencentOpenAPI/QQApiInterface.h>

6)、添加代理:TencentSessionDelegate和QQApiInterfaceDelegate

7)、初始化:

[[TencentOAuth alloc] initWithAppId:QQ_APP_ID andDelegate:self];

8)、重写handleOpenURL和openURL并实现代理QQApiInterfaceDelegate的方法获取qq分享结果的回调:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{return [TencentOAuth HandleOpenURL:url];
}- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplicationannotation:(id)annotation
{// 如果需要获取qq分享结果的回调就在这里设置代理return [QQApiInterface handleOpenURL:url delegate:self];
}// qq分享结果的回调
- (void)onResp:(QQBaseResp *)resp
{if ([resp isKindOfClass:[SendMessageToQQResp class]] && resp.type == ESENDMESSAGETOQQRESPTYPE){SendMessageToQQResp* sendReq = (SendMessageToQQResp*)resp;// sendReq.result->0分享成功 -4取消分享if ([sendReq.result integerValue] == 0) {NSLog(@"qq share success");}else{NSLog(@"qq share failed");}}
}

9)、分享文本和图片:

// 纯文本分享
+ (void)onShareText:(NSDictionary *)dict
{QQApiTextObject *txtObj = [QQApiTextObject objectWithText:@"share text"];SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:txtObj];dispatch_async(dispatch_get_main_queue(), ^{[QQApiInterface sendReq:req];});
}// 纯图片分享
+ (void)onShareImage:(NSDictionary *)dict
{NSString *path = [dict objectForKey:@"img_path"];NSData *imgData = [NSData dataWithContentsOfFile:path];NSData *preImgData = imgData;QQApiImageObject *imgObj = [QQApiImageObject objectWithData:imgDatapreviewImageData:preImgDatatitle:@"title"description:@"desc"];SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:imgObj];dispatch_async(dispatch_get_main_queue(), ^{[QQApiInterface sendReq:req];});
}

4、分享报错“preview image data is too big”,这是缩略图过大的问题,一般来说缩略图不能超过1M,如果缩略图过大就需要进行压缩,压缩的方法在sdkDemo的QQAPIShareEntry类里面有使用,可以参考,当然也可以使用其他的方法。

5、由于qq和微信的分享回调都是通过onResp方法返回的,所以最好做一下处理。

6、URL Types关系到分享结果的回调,QQ_APP_ID一定不能填错了。

ios的qq分享接入流程相关推荐

  1. QQ 登录/分享接入流程

    移动 App 接入 QQ 登录/分享流程 这里先要提两个平台,腾讯开放平台和 QQ 互联平台: (一)腾讯开放平台 官网地址:https://open.tencent.com/ 介绍:腾讯开放平台是腾 ...

  2. 视频直播平台源码关于Facebook登录、分享接入流程

    现在,视频直播平台移民三方账号登录.分享功能是最基本的功能设置,而且随着互联网技术的发展,很多视频直播平台源码需要对Facebook.Twitter.Line等国外APP进行接入,从而实现用户流量的增 ...

  3. iOS 添加微信分享sdk流程

    一.注册或登录微信开发者账号,qq号或qq邮箱就可以了 二.创建新应用 按照提示一步步完成就可以了,创建成功后就可以获得appid了 三.下载sdk,下载地址 四.配置 微信官方文档讲的很详细了,官方 ...

  4. iOS QQ分享sdk文档以及sdk下载地址

    QQ虽然跟微信都是腾讯公司,但是是两个不同的团队在操作着,两个开发平台也不一样,个人认为微信的做的更好,可以快速的创建新应用以及找到各个平台所需要的文档,QQ的相关资料在腾讯开放平台里,内容太多,不太 ...

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

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

  6. web端,qq互联以及微信登录接入流程(内嵌页面)总结

    前言 实习过程中,我参与了web版相册管家的开发,负责登陆页面的前后端逻辑. 需要在登陆页接入QQ互联和微信扫码登陆,而且是用页面内嵌方式.回头来看其实两者都有文档指导,步骤清楚,并不复杂.但是第一次 ...

  7. android 接入qq分享能力报错: java.lang.ClassNotFoundException: com.tencent.stat.StatConfig

    解决办法 在接入QQ分享的时候, 包含了open_sdk_rxxx_lite.jar, 下载地址. 在初始化的时候报了一个异常,: java.lang.ClassNotFoundException: ...

  8. 微信或QQ分享IOS应用时显示“未验证”问题相关文章汇总

    微信或QQ分享IOS应用时显示"未验证"问题相关文章汇总 1.IOS官方说明与解决方案 2.QQ互联官方关于此问题的通知 3.QQ互联官方提供的解决方案 4.QQ互联对Univer ...

  9. iOS 学习 - 13.微信分享链接、QQ 分享图片

    准备工作---原文来自这个 首先要在微信开放平台申请 AppID 和 QQ ID(我第一天晚上申请的,第二天中午就通过了),接着导入 SDK,也就是3个 .h 和一个 .a 文件,详情见这里 如果你是 ...

最新文章

  1. 计算机视觉开源库OpenCV之照明和色彩空间
  2. zabbix系列(四)Zabbix3.0.4添加对Nginx服务的监控
  3. android自助终端界面_ZTHP500 | 桌面式人脸消费终端
  4. NYOJ 6 喷水装置(一)
  5. java 连接远程服务器_java实现连接远程服务器并执行命令的基本原理
  6. idea 鼠标变量_IntelliJ IDEA鼠标悬停方法显示Java Doc
  7. [CentOS 7] TexLive2017中kpsewhich Bug的修复
  8. storyboard 苹果启动图_iOS LaunchScreen.storyboard启动图更新
  9. 计算机主机内部结构连接,电脑主机内部结构图详解
  10. win10系统计算机如何分盘,Win10怎么分盘|Win10新电脑怎么分盘
  11. 上海招聘 | 上海人工智能实验室:自动驾驶感知算法研究员、实习生等
  12. 常见的几种锁(互斥锁,自旋锁,乐观锁,悲观锁)
  13. shell 中 if[X$1 = X];then 什么意思
  14. 高可靠环境 FileNet 系统介绍和应用实例
  15. uniapp 抖音授权登录、发布、分享 Ba-Aweme
  16. 【9018:1458】征兵
  17. JZ38 字符串的排列
  18. torch.sequeeze 和 torch.unsequeeze 的用法
  19. python期中考试试卷分析_期中考试试卷分析与反思
  20. 【JavaSE】面向对象编程

热门文章

  1. 移动端前台页面需要注意的几点
  2. 泉州数字平台让城市管理更“智慧” 数分钟“搞掂”
  3. E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用
  4. Android基础入门教程——1.1 背景相关与系统架构分析
  5. mysql牵引例子_登录mysql数据库,创建名称为demo的数据,简述步骤。
  6. private方法可以被代理吗?
  7. 解决Caused by: java.lang.NoClassDefFoundError: com/aliyun/oss/internal/OSSUdfOperation
  8. 龙佰集团拟35亿投建20万吨锂电负极项目 钛白粉龙头转型可期
  9. 【xcode】Xcode常用快捷键与技巧
  10. css基础--vertical-align