分享到QQ和QQ空间
分享到QQ好友
分享消息到QQ的接口,可将新闻、图片、文字、应用等分享给QQ好友、群和讨论组。分享不需要用户授权,会使用手机QQ当前的登录态。若本地没有安装QQ,会弹框提示“你未安装手机QQ,无法进行分享,请下载安装最新版手机QQ。”调用将打开分享的界面,用户选择好友、群或讨论组之后,点击确定即可完成分享,并进入与该好友进行对话的窗口。
分享到QQ好友支持发送:
纯文本消息(QQApiTextObject)
纯图片消息(QQApiImageObject)
新闻类消息(QQApiNewsObject)
音频类消息(QQApiAudioObject)
视频类消息(QQApiVideoObject)
文本消息,图文消息和音频消息的title是必须的,summary可以不填,具体调用请参考分享示例代码。使用分享到QQ好友功能需要设置QQ业务回调,请参考
《处理QQ业务的回调》。
分享到QQ空间
在用户安装了手机QQ(4.6版本以上)时,通过手机QQ中的QZone结合版(好友动态)进行分享,否则调用浏览器页面进行分享。分享时调用浏览器页面进行分享。
分享到QQ空间支持发送:
带有URL的消息新闻类消息(QQApiNewsObject)
音频类消息(QQApiImageObject)
视频类消息(QQApiVideoObject)
其中title是必须的,summary可以不填,具体调用请参考2.3分享示例代码。使用分享到QQ空间功能需要设置QQ业务回调,请参考《处理QQ业务的回调》。
在分享到QQ好友和QQ空间的时候,根据是本地分享还是浏览器中的分享,支持分享的消息类型不同。因为webQQ好友分享和web QQ空间的分享都不支持非URL类型的分享,所以这里建议在分享到QQ好友或者QQ空间的时候尽量避免这两种类型的调用,避免发生不支持的错误。
分享消息类型 | QQ好友 | QQ空间 | web QQ好友 | web QQ空间 |
QQApiTextObject | 支持 | 不支持 | 不支持 | 不支持 |
QQApiImageObject | 支持 | 不支持 | 不支持 | 不支持 |
QQApiNewsObject | 支持 | 支持 | 支持 | 支持 |
QQApiAudioObject | 支持 | 支持 | 支持 | 支持 |
QQApiVideoObject | 支持 | 支持 | 支持 | 支持 |
QQApiGroupTribeImageObject | 仅群部落 | 不支持 | 不支持 | 不支持 |
QQApiAddFriendObject | 游戏好友 | 不支持 | 不支持 | 不支持 |
QQApiFileObject | 仅数据线 | 不支持 | 不支持 | 不支持 |
分享消息类型&代码示例(详细请参见SDK中Demo)
下面是各种分享消息的实例代码,作为开发者调用QQ好友分享和QQ空间分享的参考:
- QQApiObject(QQ消息基础类型)说明
属性 | 类型 | 含义 | 备注 |
title | NSString | 标题 | 最长30个字符 |
description | NSString | 简要描述 | 最长40个字符 |
cflag | kQQAPICtrlFlag | 场景 | 需要满足多个场景时,用 | |
shareDestType | ShareDestType | 分享到QQ/TIM | 默认分享到QQ,如果QQ未安装检测TIM是否安装 |
- SendMessageToQQReq(给QQ发消息的功能类)说明
属性 | 类型 | 含义 | 备注 |
type | QQApiInterfaceReqType | 请求消息类型 | 用+reqWithXXX初始化,可以不填type |
message | QQApiObject | 普通消息 | 用+reqWithContent:方法初始化 |
arkMessage | ArkObject | ark消息 | 用+reqWithArkContent:方法初始化 |
miniMessage | QQApiMiniProgramObject | 小程序消息 | 用+reqWithMiniContent:方法初始化 |
纯文本分享
分享一段纯文本消息到AIO,效果和自己直接发消息一样
- QQApiTextObject说明(继承QQApiObject)
属性 | 类型 | 含义 | 备注 |
text | NSString | 文本内容 | 必填,最长1536个字符 |
- 示例代码
//开发者分享的文本内容 QQApiTextObject *txtObj = [QQApiTextObject objectWithText:@"text"]; |
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:txtObj]; |
//将内容分享到 qqQQApiSendResultCode sent = [QQApiInterface sendReq:req]; |
纯图片分享
图片分享,数据限制传5M,预览图previewimage限制1M,超过会提示失败,SDK内部不会进行压缩。
- 示例代码
//开发者分享图片数据 NSData *imgData = [NSData dataWithContentsOfFile:path]; |
QQApiImageObject *imgObj = [QQApiImageObject objectWithData:imgData previewImageData:imgData title:@"title" description :@"description"]; |
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:imgObj]; |
//将内容分享到 qqQQApiSendResultCode sent = [QQApiInterface sendReq:req]; |
新闻分享
要求:title <= 128, description <= 512, preImage < 1M, url <= 1024, 且均需大于0。
- 示例代码
//分享跳转URL NSString *url = @"http://xxx.xxx.xxx/"; |
//分享图预览图URL地址 NSString *previewImageUrl = @"preImageUrl.png"; QQApiNewsObject *newsObj = [QQApiNewsObject objectWithURL :[NSURL URLWithString:utf8String] title: @"title" description :@"description" previewImageURL:[NSURL URLWithString:previewImageUrl]]; SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj]; |
//将内容分享到qq //QQApiSendResultCode sent = [QQApiInterface sendReq:req]; |
//将内容分享到qzone QQApiSendResultCode sent = [QQApiInterface SendReqToQZone:req]; |
音乐分享
- 示例代码
//分享跳转 URLNSString *url = @"http://xxx.xxx.xxx/"; |
//分享图预览图URL地址 NSString *previewImageUrl = @"preImageUrl.png"; |
//音乐播放的网络流媒体地址 NSString *flashURL = @"xxx.mp3 "; |
QQApiAudioObject *audioObj =[QQApiAudioObject objectWithURL :[NSURL URLWithString:url] title:@"title" description:@"description" previewImageURL:[NSURL URLWithString:previewImageUrl]]; |
//设置播放流媒体地址 [audioObj setFlashUrl:flashURL]; |
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:audioObj] |
//将内容分享到qq //QQApiSendResultCode sent = [QQApiInterface sendReq:req]; |
//将被容分享到qzone QQApiSendResultCode sent = [QQApiInterface SendReqToQZone:req]; |
分享文件(仅数据线)(2.8.1)
在demo中,进入分享首页,打开数据线开关,再分享文件,可分享到我的其他设备
- 示例代码
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathCo mponent:@"test.txt"]; |
NSData *fileData = [NSData dataWithContentsOfFile:filePath]; |
QQApiFileObject *fileObj = [QQApiFileObject objectWithData:fileData previewImageData:nil title:self.binding_title ? : @"" description:self.binding_description ? : @""]; |
if (self.binding_description != nil && ![self.binding_description isEqualToString:@""]) |
fileObj.fileName = self.binding_description; |
else |
fileObj.fileName = @"test.txt"; |
[fileObj setCflag:kQQAPICtrlFlagQQShareDataline]; |
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:fileObj]; |
//将内容分享到qq //QQApiSendResultCode sent = [QQApiInterface sendReq:req]; |