分享到 :

分享到QQ和QQ空间

分享到QQ好友

       分享消息到QQ的接口,可将新闻、图片、文字、应用等分享给QQ好友、群和讨论组。分享不需要用户授权,会使用手机QQ当前的登录态。若本地没有安装QQ,会弹框提示“你未安装手机QQ,无法进行分享,请下载安装最新版手机QQ。”调用将打开分享的界面,用户选择好友、群或讨论组之后,点击确定即可完成分享,并进入与该好友进行对话的窗口。
分享到QQ好友支持发送:

纯文本消息(QQApiTextObject)

纯图片消息(QQApiImageObject)

新闻类消息(QQApiNewsObject)

音频类消息(QQApiImageObject)

视频类消息(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仅数据线不支持不支持不支持
QQApiGameConsortiumBindingGroupObject仅群部落不支持不支持不支持

分享消息类型&代码示例(详细请参见SDK中Demo)

下面是各种分享消息的实例代码,作为开发者调用QQ好友分享和QQ空间分享的参考:

(注:如果可以分享到QQ空间,则会在示例代码中给出;不给出,则表示空间不支持该类分享)

  • QQApiObject(QQ消息基础类型)说明
属性类型含义备注
titleNSString标题最长30个字符
descriptionNSString简要描述最长40个字符
cflagkQQAPICtrlFlag场景需要满足多个场景时,用 |
shareDestTypeShareDestType分享到QQ/TIM默认分享到QQ,如果QQ未安装检测TIM是否安装
  • SendMessageToQQReq(给QQ发消息的功能类)说明
属性类型含义备注
typeQQApiInterfaceReqType请求消息类型用+reqWithXXX初始化,可以不填type
messageQQApiObject普通消息用+reqWithContent:方法初始化
arkMessageArkObjectark消息用+reqWithArkContent:方法初始化
miniMessageQQApiMiniProgramObject小程序消息用+reqWithMiniContent:方法初始化

纯文本分享

分享一段纯文本消息到AIO,效果和自己直接发消息一样

  • QQApiTextObject说明(继承QQApiObject)
属性类型含义备注
textNSString文本内容必填,最长1536个字符
  • 示例代码
//开发者分享的文本内容
QQApiTextObject *txtObj = [QQApiTextObject objectWithText:@"text"];
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:txtObj];
//将内容分享到
qqQQApiSendResultCode sent = [QQApiInterface sendReq:req];

纯图片分享

图片分享,数据限制传5M,超过会提示失败,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];
返回顶部