分享到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]; |