概述
分享模块提供游戏分享个性化消息到手Q/微信的会话(包括好友和群)、空间、朋友圈的能力,常用于邀请、炫耀、送心、活动分享等。依托于腾讯关系链的MSDK分享充分发挥了手Q、微信关系链优势,可有效触达用户,便于增加新进和回流,提升游戏活跃,拓展游戏玩法。
显示详情接入向导
1 前置条件
a) 您已经按初始化模块说明完成 初始化。
b) 确认您的游戏分享权限已开通。完成游戏注册后已根据您的游戏类别开通相应权限,如果您调用登录接口返回"-303, no permission",请联系MSDK联调支持的同学。
c)确认用户已经完成手Q/微信授权登录
2 参考Demo示例
手Q分享示例参考 MSDKDemo/LoginSucceedVC.mm 中分享部分。
微信分享示例参考 MSDKDemo/LoginSucceedVC.mm 中分享部分。
3 调用此模块其他接口
完成前面Step1-Step2步骤后,即已完全接入此模块,可直接调用此模块的其他接口不需要额外的配置。此模块各部分说明如下。
1)结构化分享:结构化分享需要拉起手Q/微信,分享展示为左图右文的结构。
2)大图分享:大图分享需要拉起手Q/微信,分享展示为一张图片。
3)音乐分享:音乐分享需要拉起手Q/微信,分享展示为左图右文,点击图片可直接播放音乐或跳转到链接播放音乐。
4)后端分享:后端分享不需要拉起手Q,可直接在游戏内调用接口即可分享到同玩好友。
5)微信链接分享:微信链接分享需要拉起微信分享,点击消息可打开网页。
6)手Q富图分享:手Q富图分享可通过拉起手Q发送丰富的图片到QQ空间。
7)手Q视频分享:手Q视频分享可通过拉起手Q分享本地视频到QQ空间。
8)手Q ARK分享:手Q ARK分享可通过拉起手Q分享到会话、QQ空间。
9)手Q游戏中心详情页:手Q游戏中心详情页是手Q提供给精品游戏在游戏中心展示详情的页面,此页面提供下载,展示,跳转游戏等能力。
概括说明
结构化分享需要拉起手Q/微信,可分享到会话和QQ空间,无法分享到微信朋友圈。
处理回调
1)功能描述
为接收MSDK的分享回调,您需要处理OnShareNotify
。
2)接口声明
virtual void OnShareNotify(ShareRet& shareRet) = 0;
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
shareRet | ShareRet类 | 分享结果信息类 |
4)返回值
无
5)示例代码
void MyObserver::OnShareNotify(ShareRet& shareRet)
{
switch (shareRet.flag)
{
case eFlag.eFlag_Succ:
// TODO GAME 分享成功
break;
case eFlag.eFlag_QQ_UserCancel:
case eFlag.eFlag_WX_UserCancel:
case eFlag.eFlag_WX_NotInstall:
default:
// TODO GAME 分享失败
break;
}
};
6)特殊说明
无
7)名词解释
无
微信结构化分享
1)功能描述
您可以调用WGSendToWeixin
接口将结构化消息分享到微信会话。
2)接口声明
void WGSendToWeixin(
unsigned char* title,
unsigned char* desc,
unsigned char* mediaTagName,
unsigned char* thumbImgData,
const int& thumbImgDataLen,
unsigned char* messageExt),
unsigned char *userOpenId);//3.3.0版本开始新增userOpenId参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
title | unsigned char* | 标题;不能超过512字节 |
desc | unsigned char* | 概要信息;不能超过1K |
mediaTagName | unsigned char* | 此值会传到微信供统计用,点击 规范 可见详情 |
thumbImgData | unsigned char* | 缩略图文件数据 |
thumbImgDataLen | const int& | 缩略图数据长度;大小不能超过32K |
messageExt | unsigned char* | 游戏自定义透传字段,详见下文特殊说明;不需要的话可以填写空串 |
userOpenId | unsigned char* | 指定分享给特定的好友(可传空串、openid或sopenid);3.3.0版本开始新增该参数 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
UIImage *image = [UIImage imageNamed:@"music.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToWeixin((unsigned char*)"分享标题",
(unsigned char*)"分享内容",
(unsigned char*)"MSG_INVITE",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"msdkwuwuwu"),
(unsigned char *)"");//3.3.0版本开始新增userOpenId参数
6)特殊说明
参数 messageExt 可在分享后玩家点击时回传给游戏。具体过程:玩家A分享微信消息(带有messageExt参数)给玩家B,玩家B点击收到的这条消息拉起游戏,那么玩家B的游戏客户端会收到回调事件OnWakeupNotify(WakeupRet &wakeupRet)
,wakeupRet.messageExt即为玩家A分享时传递的messageExt参数。OnWakeupNotify
的注册参考异账号处理。
7)名词解释
无
手Q结构化分享
1)功能描述
您可以调用WGSendToQQ接口将结构化消息分享到QQ会话或空间;支持空间新能力,详细说明参见空间新能力说明
2)接口声明
void WGSendToQQ(
const eQQScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* url,
unsigned char* imgData,
const int& imgDataLen
unsigned char* tagname,//3.3.18版本开始新增该参数
unsigned char* messageExt);//3.3.18版本开始新增该参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
title | unsigned char* | 标题;字符串长度不能超过128 |
desc | unsigned char* | 概要信息;字符串长度不能超过512 |
url | unsigned char* | 内容的跳转Url |
imgData | unsigned char* | 缩略图文件数据;图片大小不能超过1M |
imgDataLen | const int& | 缩略图数据长度 |
tagname | unsigned char* | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | unsigned char* | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
UIImage *image = [UIImage imageNamed:@"music.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToQQ(QQScene_QZone,
(unsigned char*)[gameid UTF8String] ,
(unsigned char*)[question UTF8String],
(unsigned char*)"https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite&gamedata=gamedata",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"tagname",//3.3.18版本开始新增该参数
(unsigned char*)"messageExt");//3.3.18版本开始新增该参数
6)特殊说明
url 若填手Q游戏中心详情页链接, 点击消息可拉起游戏并传回自定义参数,详细内容参考:手Q游戏中心详情页。
7)名词解释
无
8)
QQ 空间新能力(带小尾巴,支持配置热区、webview弹窗、轨迹手势)由平台提供,具体功能需要由游戏侧和平台沟通,在平台侧进行配置。分享的视频、跳转链接由游戏侧根据平台提供的接入文档生成,复用到 MSDK 分享邀请消息到空间的接口。
空间新分享能力介绍(由平台提供):
- 内部访问:http://km.oa.com/group/mobileqqgamecenter/articles/show/382797
- 外部访问(以 km 文档为准):https://docs.qq.com/doc/DY2lhTHRld05aaU12
空间新分享能力接入文档(由平台提供):
- 内部访问:http://km.oa.com/group/mobileqqgamecenter/articles/show/387806
- 外部访问(以 km 文档为准):https://docs.qq.com/doc/DY3BOZFpyR3N0Tkx6
空间新能力需要和平台沟通接入,可联系MSDK助手对接
QQ 空间新能力特殊说明:
1、分享图片到空间时,url 传跳转链接,imgData 传分享的图片数据([data bytes])
2、分享视频到空间时, url 传视频链接(示例链接:https://v.qq.com/x/page/e08824fm35c.html?_sharetype=1&_shareid=12345&_appid=1106396765;备注:该链接仅可用于项目验证查看效果,项目发布需要使用项目侧真实地址),imgData 传分享时显示的缩略图
分享图片到空间效果如下:
分享视频到空间效果如下:
高级用法
1)功能描述
游戏在分享结构化消息时可附加一段自定义信息(字符串)到 结构化消息中,另一位玩家点击此消息会自动拉起游戏并将附加的自定义信息通过OnWakeupNotify透传给游戏。 此能力可用于邀请线下好友对战,并快速加入对战房间进行游戏。例如:
1) 玩家A开启了一个对战房间11,此时玩家B不在线;
2) A分享一个QQ/Wechat结构化消息(附加自定义信息,如房间号11及A的openid)给B;
3) B在QQ/WeChat中点击了此消息,此时会拉起游戏并传递附加的信息(房间号11及A的openid等)给游戏客户端;
4) 游戏可根据附加的房间号11及A的openid等信息,让B快速加入A的对战房间11,两玩家即可开始对战。
2)参数说明
WeChat 可通过接口WGSendToWeixin 中的messageExt 参数透传自定义信息。
QQ 可通过接口 WGSendToQQ 中的targetUrl 设置为游戏中心详情页Url并添加gamedata参数透传自定义信息。例如
游戏中心详情页Url为:
https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite;
在Url中添加自定义信息”CustomData”:
https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite&gamedata=CustomData;
3)示例代码
点击分享消息启动,接收并处理附加的自定义信息:
void MyObserver::OnWakeupNotify(WakeupRet& wakeupRet)
{
string gameCustomData = "";
if ((int)ePlatform_QQ == ret.platform)
{
std::vector<KVPair> extInfo = ret.extInfo;
foreach(KVPair pair in extInfo)
{
if ("gamedata".Equals(pair.key))
{
gameCustomData = pair.value;
break;
}
}
}
else if ((int)ePlatform_Weixin == ret.platform)
{
gameCustomData = ret.messageExt;
}
......
}
概括说明
大图分享需要拉起手Q/微信,可分享到会话、QQ空间及微信朋友圈。
处理回调
参见结构化分享的处理回调
微信大图分享
1)功能描述
您可以调用WGSendToWeixinWithPhoto
接口将大图消息分享到微信会话、朋友圈。
2)接口声明
void WGSendToWeixinWithPhoto(
const eWechatScene &scene,
unsigned char *mediaTagName,
unsigned char *imgData,
const int &imgDataLen,
unsigned char *messageExt,
unsigned char *messageAction
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
mediaTagName | unsigned char * | 此值会传到微信供统计用,点击 规范 可见详情 |
imgData | unsigned char * | 图文件数据 |
imgDataLen | const int & | 图数据长度;大小不能超过32K |
messageExt | unsigned char * | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
messageAction | unsigned char * | 保留字段;可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
UIImage *image = [UIImage imageNamed:@"treasure.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToWeixinWithPhoto(WechatScene_Session,
(unsigned char*)"MSG_INVITE",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"",
(unsigned char*)"");
6)特殊说明
无
7)名词解释
无
手Q大图分享
1)功能描述
您可以调用WGSendToQQWithPhoto接口将大图消息分享到手Q会话、空间。
2)接口声明
void WGSendToQQWithPhoto(
const eQQScene& scene,
unsigned char* imgData,
const int& imgDataLen,
unsigned char* tagname,//3.3.18版本开始新增该参数
unsigned char* messageExt);//3.3.18版本开始新增该参数);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
imgData | unsigned char* | 图文件数据 |
imgDataLen | const int& | 图数据长度 |
tagname | unsigned char* | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | unsigned char* | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
UIImage *image = [UIImage imageNamed:@"treasure.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToQQWithPhoto(QQScene_Session,
(unsigned char*)[data bytes],
(int)[data length]
(unsigned char*)"tagname",//3.3.18版本开始新增该参数
(unsigned char*)"messageExt");//3.3.18版本开始新增该参数
);
6)特殊说明
iOS分享到手Q会话及空间,图片大小不能超过5M
7)名词解释
无
手Q大图分享带自定义参数
1)功能描述
大图分享到空间能力,手Q空间侧需求针对传入内容,个性化匹配用户看到的小尾巴内容。实现个性化的操作结果。
2)接口声明
void WGSendToQQWithPhoto(const eQQScene &scene,
ImageParams &imageParams,
const unsigned char *extraScene,
const unsigned char *messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 分享的场景,目前只支持qq空间QQScene_QZone |
imageParams | ImageParams | 此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen。 |
extraScene | unsigned char* | 区分分享的场景,用于异化小尾巴展示和feeds点击行为,需与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | unsigned char* | 游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
UIImage *image = [UIImage imageNamed:@"treasure.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
ImageParams imageParam;
imageParam.ios_imageData = (unsigned char *)[data bytes];
imageParam.ios_imageDataLen = (int)[data length];
WGPlatform::GetInstance()->WGSendToQQWithPhoto(QQScene_QZone, imageParam,(unsigned char *)"MESSAGE_ACTION_SNS_CANVAS#Honor=1" , (unsigned char *) "空间带额外参数");
6)特殊说明
无
7)名词解释
无
概括说明
后端分享不需要拉起手Q,可直接在游戏内调用接口即可分享到同玩好友。
处理回调
参见结构化分享的处理回调
手Q后端分享
1)功能描述
您可以调用WGSendToQQGameFriend
接口将消息在好友的会话中展示或者通过手Q公众号“QQ手游”分享到目标用户。该接口平台侧已不再接受游戏接入,如有特殊需求请联系手Q游戏中心对接(已接入游戏可继续使用)
接入须知:
1、分享的内容只有手机QQ上才可以看到,PC QQ上看不到。
2、收发限制:
(1)结构化消息:
同一对号码发送接收,互动次数是一天一次
接收方,每天最多接收 5 条,每周最多接收 20 条
发送方,每天发给不同用户,最多发送 10 条,每周最多发送 40 条
(2)ark消息:
接收方,每天最多接收 5 条,接收自同一用户最多 3 条
发送方,每天最多 30 条,每周最多 100 条
3、通过"QQ手游"公众号接收的消息,平台侧会延时下发,于每日固定三个时间段(当前是每天12点,20点,22点)通过公众号下发,单用户每天最多收到3条公众号消息。
4、手Q后端分享提供了新的接入流程,新游接入时按照以下流程接入(已上线游戏没有影响),以下流程均需要业务对应腾讯接口人联系手Q游戏中心对接
(1)提供图片文案及申请gametag
(2)新增appid录入到AMS流程
(3)配置测试用游戏中心详情页(后续可更换为正式详情页)
(4)接口接入完成后验证分享是否成功
2)接口声明
bool WGSendToQQGameFriend(
int act,
unsigned char* fopenid,
unsigned char *title,
unsigned char *summary,
unsigned char *targetUrl,
unsigned char *imgUrl,
unsigned char* previewText,
unsigned char* gameTag,
unsigned char* msdkExtInfo
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
act | int | 点击分享消息行为;1 拉起游戏,默认为拉起游戏; |
fOpenId | unsigned char* | 分享目标玩家的openid |
title | unsigned char* | 标题;字数不能超过20字 |
desc | unsigned char* | 概要信息;字数不能超过60字 |
targetUrl | unsigned char* | 游戏中心详情页地址,配置请参考:https://wiki.ssl.msdk.qq.com/IOS/share.html#IOS_QGameCenter |
imageUrl | unsigned char* | 分享缩略图Url;只能为网络图片Url |
previewText | unsigned char* | 预览文字,可选;不能超过45字节 |
gameTag | unsigned char* | gameTag用于平台对分享类型的统计,比如送心分享、超越分享,该值由游戏制定并同步给手Q平台,目前的值有多种,仅列出部分参考,可同手Q平台沟通后填写: 1.通过公众号收到推送消息: "MSG_INVITE":邀请 "MSG_FRIEND_EXCEED":超越炫耀 "MSG_HEART_SEND":送心 "MSG_SHARE_FRIEND_PVP":PVP对战 2.通过C2C推送收到结构化消息: "MSG_RECALL":召回 "MSG_INVITE_NEW":邀请 3.ark消息: "MSG_RECALL_ARK":召回 "MSG_INVITE_ARK":邀请 "MSG_INVITE_FRIEND_ARK":拉新 |
msdkExtInfo | unsigned char* | 游戏自定义透传字段,通过分享回调OnShareNotify 中的shareRet.extInfo返回给游戏 |
4)返回值
false:参数不合法,未发起分享请求;true:分享请求发起成功。
分享结果通过OnShareNotify
回调返回游戏。
5)示例代码
WGPlatform::GetInstance()->WGSendToQQGameFriend(0,
(unsigned char *)"E7B0E64C39A09127A698326F4941A9B6",
(unsigned char *)"title",
(unsigned char *)"desc",
(unsigned char *)"http://bbs.oa.com",
(unsigned char *)"http://bbs.oa.com",
(unsigned char *)"PreviewText",
(unsigned char *)"MSG_INVITE",
(unsigned char *)"extMsdkInfo");
6)特殊说明
分享的内容只有手机QQ上才可以看到,PC QQ上看不到。同一用户每天最多能接收5条,最多从同一个用户每天接收3条。
7)名词解释
无
后端分享到群
概括说明
游戏公会/联盟内,用户可以直接分享结构化消息到微信公会群。游戏可以基于该接口做一些拉活的方案。调用接口为WGSendToWXGroup,结果会通过分享通用的 OnShareNotify 回调给游戏。
注册回调
参见结构化分享的注册回调
后端分享到微信群
1)功能描述
此接口不需要拉起微信,可直接分享到玩家已加入的工会微信群。
2)接口声明
void WGSendToWXGroup(
const int& msgType,
const int& subType,
unsigned char* unionID,
unsigned char* title,
unsigned char* desc,
unsigned char* mediaTagName,
unsigned char* imgUrl,
unsigned char* messageExt,
unsigned char* msdkExtInfo
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
msgType | int | 消息类型,目前传1 |
subType | int | 分享类型,邀请填1,炫耀填2,赠送填3,索要填4 |
unionID | unsigned char* | 工会ID |
title | unsigned char* | 分享的标题 |
desc | unsigned char* | 分享的简介 |
mediaTagName | unsigned char* | 此值会传到微信供统计用,点击 规范 可见详情 |
imgUrl | unsigned char* | 分享缩略图URL |
messageExt | unsigned char* | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
msdkExtInfo | unsigned char* | 游戏自定义透传字段,通过分享结果 shareRet.extInfo 返回给游戏 |
4)返回值
无,分享结果通过 OnShareNotify 回调返回游戏
5)示例代码
int msgType = 1;
int subType = 1;
std::string unionID = "1";
std::string title = "后端分享到公会微信群-title";
std::string desc = "后端分享给微信好友-desc";
std::string mediaTagName = "MSG_INVITE";
std::string imgUrl = "http://blog.bihe0832.com/public/img/head.jpg";
std::string messageExt = "message Ext";
std::string msdkExtInfo = "msdkExtInfo";
WGPlatform::GetInstance()->WGSendToWXGroup(
msgType,
subType,
(unsigned char *)unionID.c_str(),
(unsigned char *)title.c_str(),
(unsigned char *)desc.c_str(),
(unsigned char *)mediaTagName.c_str(),
(unsigned char *)imgUrl.c_str(),
(unsigned char *)messageExt.c_str(),
(unsigned char *)msdkExtInfo.c_str());
6)特殊说明
1.接口需要参考工会id,因此必须将此工会绑定到微信群才能分享消息。 2.此玩家必须先加入到工会群,才能分享消息,详见群模块
7)名词解释
无
概括说明
音乐分享需要拉起手Q/微信,可分享到会话、QQ空间及微信朋友圈。点击音乐消息可直接播放音乐或跳转到音乐网址播放。
处理回调
参见结构化分享的处理回调
微信音乐分享
1)功能描述
您可以调用WGSendToWeixinWithMusic
接口将音乐消息分享到微信会话和朋友圈。
2)接口声明
void WGSendToWeixinWithMusic(
const eWechatScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* musicUrl,
unsigned char* musicDataUrl,
unsigned char *mediaTagName,
unsigned char *imgData,
const int &imgDataLen,
unsigned char *messageExt,
unsigned char *messageAction
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
title | unsigned char* | 标题;不能超过512字节 |
desc | unsigned char* | 概要信息;不能超过1K |
musicUrl | unsigned char* | 点击消息后跳转的Url;长度不能超过10K |
musicDataUrl | unsigned char* | 音乐数据Url(例http:// ***.mp3);长度不能超过10K |
mediaTagName | unsigned char* | 此值会传到微信供统计用,点击 规范 可见详情 |
imgData | unsigned char* | 缩略图文件数据 |
imgDataLen | int | 缩略图数据长度;大小不能超过32K |
messageExt | unsigned char* | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
messageAction | unsigned char* | (音乐分享暂时不可自定义小尾巴,可传空)分享到朋友圈时,游戏可以自定义朋友圈小尾巴行为,详情点击这里 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToWeixinWithMusic(WechatScene_Session,
(unsigned char*)"测试音乐",
(unsigned char*)"测试音乐分享",
(unsigned char*)"http://y.qq.com/#type=song&mid=000cz9pr0xlAId",
(unsigned char*)"http://tsmusic24.tc.qq.com/M500000cz9pr0xlAId.mp3",
NULL,
(unsigned char*)[data bytes],
(int)[data length],
NULL,
NULL);
6)特殊说明
无
7)名词解释
无
手Q音乐分享
1)功能描述
您可以调用WGSendToQQWithMusic
接口将音乐消息分享到手Q会话和空间。
2)接口声明
void WGSendToQQWithMusic(
const eQQScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* musicUrl,
unsigned char* musicDataUrl,
unsigned char* imgUrl
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
title | unsigned char* | 标题;字符串长度不能超过128 |
desc | unsigned char* | 概要信息;字符串长度不能超过512 |
musicUrl | unsigned char* | 点击消息后跳转的Url |
musicDataUrl | unsigned char* | 音乐数据Url(例http:// ***.mp3) |
imgUrl | unsigned char* | 分享消息缩略图Url;本地路径或者网络Url |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToQQWithMusic(QQScene_QZone,
(unsigned char*)"测试音乐",
(unsigned char*)"测试音乐分享",
(unsigned char*)"http://y.qq.com/#type=song&mid=000cz9pr0xlAId",
(unsigned char*)"http://tsmusic24.tc.qq.com/M500000cz9pr0xlAId.mp3",
(unsigned char*)"http://www.monsterworking.com/wp-content/uploads/music.jpg");
6)特殊说明
无
7)名词解释
无
发送微信群消息
1)功能描述
在游戏中向微信群发结构化消息。
2)接口声明
void WGSendToWXGroup(
const int& msgType,
const int& subType,
unsigned char* unionID,
unsigned char* title,
unsigned char* desc,
unsigned char* messageExt,
unsigned char* mediaTagName,
unsigned char* imgUrl,
unsigned char* msdkExtInfo
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
msgType | int | 消息类型:1:open 2:link(未实现) 3:voice(未实现) 4:text(未实现) |
subType | int | 子类型:1:邀请(填1) 2:炫耀 3:赠送 4:索要 |
unionID | unsigned char* | 公会ID |
title | unsigned char* | 标题 |
desc | unsigned char* | 描述 |
messageExt | unsigned char* | 游戏分享是传入字符串,通过此消息拉起游戏会通过 OnWakeUpNotify中ret.messageExt回传给游戏;不需要的话可以填写空串 |
mediaTagName | unsigned char* | 此值会传到微信供统计用,点击 规范 可见详情 |
imgUrl | unsigned char* | 图片CDN url |
msdkExtInfo | unsigned char* | 游戏自定义透传字段,通过 OnShareNotify中shareRet.extInfo返回给游戏 |
4)返回值
无,调用结果会通过OnShareNotify
回调给游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToWXGroup(1,
1,
(unsigned char*)[unionId UTF8String],
(unsigned char*)"WXGroup Title",
(unsigned char*)"WXGroup Desc",
(unsigned char*)"messageExt",
(unsigned char*)"MSG_INVITE",
(unsigned char*)"http://mmocgame.qpic.cn/wechatgame/mEMdfrX5RU3uZS2DPHjgjMZEVAOwVZ9ovTytliapMYJD5mQfffyXsUBFSkINlxUVk/0",
(unsigned char*)"msdkExtInfo");
6)特殊说明
参数中unionID,title,desc,mediaTagName不能为空。
7)名词解释
无
概括说明
微信链接分享需要拉起微信分享,点击消息可打开网页。
处理回调
参见结构化分享的处理回调
微信链接分享
1)功能描述
您可以调用WGSendToWeixinWithUrl
接口将链接消息分享到微信会话和朋友圈。
2)接口声明
void WGSendToWeixinWithUrl(
const eWechatScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* url,
unsigned char* mediaTagName,
unsigned char* thumbImgData,
const int& thumbImgDataLen,
unsigned char* messageExt),
unsigned char *userOpenId);//3.3.0版本开始新增userOpenId参数;
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈。标识为朋友圈时,需要将userOpenId设置为空串 |
title | unsigned char* | 标题;不能超过512字节 |
desc | unsigned char* | 概要信息;不能超过1K |
url | unsigned char* | 点击可打开的目标网址;长度不能超过10K |
mediaTagName | unsigned char* | 此值会传到微信供统计用,点击 规范 可见详情 |
thumbImgData | unsigned char* | 缩略图文件数据 |
thumbImgDataLen | int | 缩略图数据长度;大小不能超过32K |
messageExt | unsigned char* | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
userOpenId | unsigned char* | 指定分享给特定的好友,可传空串;3.3.0版本开始新增该参数 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToWeixinWithUrl(WechatScene_Session,
(unsigned char*)"分享标题",
(unsigned char*)"分享内容",
(unsigned char*)"http://www.baidu.com",
(unsigned char*)"MSG_INVITE",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"msdkwuwuwu"),
(unsigned char *)"");//3.3.0版本开始新增userOpenId参数;
6)特殊说明
无
7)名词解释
无
1 概括说明
手Q富图分享可通过拉起手Q发送丰富的图片到QQ空间。可上传多张图片(<=9 张图片发表说说,>9 张为上传图片到相册),并支持gif图片。3.3.0版本开始新增该接口。
2 注册回调
参见结构化分享的注册回调
3 手Q富图分享
1)功能描述
您可以调用WGSendToQQWithRichPhoto接口拉起手Q上传多张图片(包括gif动图)到QQ空间。
2)接口声明
void WGSendToQQWithRichPhoto(unsigned char *summary, std::vector<ImageParams> &imgParams , const unsigned char *extraScene, const unsigned char *messageExt)
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
summary | unsigned char* | 分享的正文;此参数目前无效 |
imgParams | ImageParams | 分享的多张图片的集合;ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen,并需要手Q客户端版本大于等于5.9.5 |
extraScene | unsigned char* | 区分分享的场景,用于异化小尾巴展示和feeds点击行为,需要与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | unsigned char* | 游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过 WGPlatformObserver 回调返回游戏。
5)示例代码
std::string cSummary = "我的游戏精彩瞬间";
WGPlatform::GetInstance()->WGSendToQQWithRichPhoto((unsigned char *)cSummary.c_str(), imgParams,
(unsigned char *)"1",
(unsigned char *)"msdk");
6)特殊说明
无
7)名称解释
无
1 概括说明
手Q视频分享可通过拉起手Q分享本地视频到QQ空间。3.3.9i 版本开始新增该接口。
2 注册回调
参见结构化分享的注册回调
3 手Q视频分享
1)功能描述
您可以调用WGSendToQQWithVideo接口通过拉起手Q将视频消息分享到QQ空间。
2)接口声明
void WGSendToQQWithVideo(unsigned char *summary,
VideoParams &videoParams,
unsigned char *extraScene,
unsigned char *messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
summary | unsigned char* | 分享的正文;此参数目前无效 |
videoParams | VideoParams | 封装Android、iOS的视频数据;其中,Android填被分享的文件路径,iOS填写视频二进制数据和相应的数据长度 |
extraScene | unsigned char* | 区分分享的场景,用于异化小尾巴展示和feeds点击行为,需与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | unsigned char* | 游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过 WGPlatformObserver 回调返回游戏。
5)示例代码
std::string cSummary = "我的游戏精彩瞬间";
WGPlatform::GetInstance()->WGSendToQQWithVideo((unsigned char *)cSummary.c_str(),
videoParams,
(unsigned char *)"1",
(unsigned char *)"msdk");
6)特殊说明
videoParams 参数iOS填写视频二进制数据和相应的数据长度;iOS手Q客户端版本需要8.0.8及以上版本
7)名称解释
无
1 概括说明
ARK分享需要拉起手Q,可分享到会话;ARK分享需要提供AppId添加手Q白名单并与手Q沟通具体协议。
2 注册回调
参见结构化分享的注册回调
3 手Q ios ARK分享
1)功能描述
您可以调用WGSendToQQWithArk接口将ARK消息分享到手Q会话
2)接口声明
void WGSendToQQWithArk(
const eQQScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* url,
unsigned char* imgUrl,
unsigned char* jsonString
unsigned char* tagname,//3.3.18版本开始新增该参数
unsigned char* messageExt);//3.3.18版本开始新增该参数
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话;scene暂时只支持qq会话,不支持空间 |
title | unsigned char * | 标题;不能超过80字节 |
desc | unsigned char * | 内容信息;不能超过130字节 |
url | unsigned char * | 内容的跳转url,填游戏对应游戏中心详情页;建议不超过120字节,若超出会对比较长的url进行换短链处理 |
imgUrl | unsigned char * | 分享消息缩略图Url;本地路径或者网络Url;图片大小不能超过1M |
jsonString | unsigned char * | ARK分享jsonString(此处由业务侧与手q ARK开发时约定如何配置,msdk仅透传) |
tagname | unsigned char * | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | unsigned char * | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过 WGPlatformObserver回调OnShareNotify函数返回游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToQQWithArk((eQQScene)cScene,
(unsigned char *)"it's title",
(unsigned char *)"it's desc",
(unsigned char *)"https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite&gamedata=gamedata",
(unsigned char *)"http://q.qlogo.cn/qqapp/100703379/C1BF66286792F24E166C9A5D27CFB519/100",
(unsigned char*)""{"app":"com.tencent.gamecenter.gameshare","view":"noDataView","desc":"模板描述","prompt":"消息提示语","ver":"0.0.0.1","config":{"type":"normal"},"meta":{"shareData":{"appid":"1104466820","type":"image","url":"http%3a%2f%2fimgcache.qq.com%2fclub%2fmars%2fimg_upload%2fgc843_wzgame.png","width":601,"height":330,"buttons":[{"text":"TA的战绩","url":"http%3a%2f%2fcdn.vip.qq.com"}]}}}"",
(unsigned char *)"tagname",//3.3.18版本开始新增该参数
(unsigned char *)"messageExt");//3.3.18版本开始新增该参数;
6)特殊说明
注:为了能够正常使用该功能,作为开发者您需要知晓如下信息:
-
在QQ客户端8.0.0之前版本,当ARK分享失败时,会自动转化为结构化消息进行分享。传入参数:title,desc,url,imgUrl即为结构化消息的参数。当ARK分享成功时,title,desc,url,imgUrl没有作用。
-
从QQ客户端8.0.0版本开始,ARK参数必须填写正确,未填入不会成功分享ARK形态的消息,如错误则分享失败。
-
您需要在ARK官方管理端注册您的产品并制作提交您的ARK卡片素材,素材过审后的产品,才会开放相应权限。管理端地址:http://arkapp.oa.com:8080/app_light/dst/index.html#/ (该地址为内网访问,可由腾讯对应运营接口人协助处理,涉及到的卡片模版审核上架等具体可咨询ARK_Helper)
-
iOS的非ARK在TIM上的分享,需要在scheme中加入tim:路径如下:iOS的Info.plist中,Information Property List -> LSApplicationQueriesSchemes中添加tim
ARK客户端分享需要与手Q游戏中心沟通接入,详细流程可参照:http://km.oa.com/group/39817/articles/show/375226(该流程文档为内网访问,需要游戏对应腾讯运营接口人查看并联系游戏中心配置;游戏中心接口人:ARK_Helper)
7)名称解释
无
手Q游戏中心详情页
概括说明
手Q游戏中心详情页是手Q提供给精品游戏在游戏中心展示详情的页面,此页面提供下载,展示,跳转游戏等能力,使用前需要游戏运营经理在手Q游戏中心侧配置。 手Q分享的targetUrl参数若填写手Q游戏中心详情页链接,点击这条分享的消息时可跳到此游戏在游戏中心的详情页,随后自动拉起游戏。
游戏中心详情页链接示例:
https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite&gamedata=gamedata;
字段规范:
字段 | 说明 |
---|---|
appid | 游戏在手Q游戏中心的唯一标识ID |
_wv | 固定为 2164260896 |
_wwv | 固定为 448 |
autodownload | 可配置为1、0,不配置则默认为0;1为未下载游戏时启动下载,已下载游戏时拉起游戏;0则反之 |
autolaunch | 可配置为1、0,不配置则默认为0;1为拉起游戏;0则反之 |
autosubscribe | 可配置为1、0,不配置则默认为0;1为自动预约;0则反之 |
ADTAG | 标识不同的结构化消息来源,可能值有。 gameobj.msg_invite : 邀请 gameobj.msg_exceed : 超越 gameobj.msg_heart : 送心 gameobj.msg_pvp : 挑战 gameobj.msg_show : 炫耀 |
gamedata | 透传给游戏的数据;IOS平台不支持json格式 |
携带登录态:
若需要点击分享消息拉起游戏(或游戏中心启动游戏)时携带登录态,需要游戏运营经理在手Q游戏中心侧配置。
回传自定义参数:
游戏在手Q分享时自定义的参数可在另一位玩家点击分享消息拉起游戏时回传给游戏客户端。利于此能力游戏可实现邀请不在线玩家开黑等玩法。 手Q分享时targetUrl参数填写手Q游戏中心详情页链接,并在可选字段gamedata填写游戏自定义参数。若玩家点击此条分享消息,在拉起游戏时游戏客户端会收到唤起回调WakeupEven,wakeupRet透传了手Q游戏中心详情页链接中的gamedata字段。
自定义参数提取示例:
void MyObserver::OnWakeupNotify(WakeupRet& wakeupRet)
{
// TODO GAME
std::string gamedata;
std::vector<KVPair> pairs = ret.extInfo;
foreach(KVPair pair in pairs)
{
if (pair.key.Equals("gamedata"))
{
gamedata = pair.value;
}
}
}
其中OnWakeupNotify
的处理参考异账号处理。
1)功能描述
可以允许用户通过内置浏览器打开微信游戏圈分享图片和文字到微信游戏圈。
2)接口声明
void WGShareToWXGameline(unsigned char* imgData,const int& imgDataLen,unsigned char* gameExtra);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
imgData | unsigned char* | 分享的图片数据 |
imgData | int | 分享的图片数据长度 |
gameExtra | unsigned char* | 分享的游戏自定义参数,参数会附加到url后面 |
4)返回值
无。
5)示例代码
UIImage *image = [UIImage imageNamed:@"news.jpg"];
NSData* data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGShareToWXGameline((unsigned char*)[data bytes],(int)[data length],(unsigned char*)"10000");
6)特殊说明
图片数据的大小不能超过512K,超过大小的图片游戏需要自己压缩处理,MSDK对图片不做任何处理 gameExtra游戏自定义参数建议业务做Base64编码处理后传递,MSDK此参数只是透传,不做任何处理,同时需要确保此参数长度符号url长度要求。
7)名词解释
无
微信DeepLink
1)功能描述
微信DeepLink功能是指在游戏中调用WGOpenWeiXinDeeplink接口直接拉起微信并跳转至微信的游戏中心首页、详情页、游戏库以及自定义URL,DeepLink功能的开通和配置需请联系微信游戏中心。自MSDK2.12.0i版本开始提供此功能。
2)接口声明
void WGOpenWeiXinDeeplink(unsigned char* link);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
link | unsigned char* | 具体跳转deeplink,值可填写为INDEX、DETAIL、LIBRARY及自定义URL,各个值含义为: INDEX:跳转至微信游戏中心首页 DETAIL:跳转至微信游戏中心详情页 LIBRARY:跳转至微信游戏中心游戏库 自定义URL:跳转至微信Webview并打开URL(需要在微信游戏中心预先配置好此URL) |
4)返回值
无。
5)示例代码
WGPlatform::GetInstance()->WGOpenWeiXinDeeplink((unsigned char*)"INDEX");
6)特殊说明
1.DeepLink功能需联系微信游戏中心开通和配置。
2.自定义URL需要在微信游戏中心先配置好且和调用接口传递的参数字符完全匹配,如在微信游戏中心配置了“http://www.qq.com/”,则接口link参数必须传“http://www.qq.com/”,若传“http://www.qq.com”则会失败。
7)名词解释
无
1 概括说明
小程序分享需要拉起手Q/微信,可分享到会话、QQ空间。
2 注册回调
参见结构化分享的注册回调
3 微信小程序分享
1)功能描述
微信侧基于小程序,提供新的分享特性能力。您可以调用WGSendToWXWithMiniApp接口将小程序分享到微信会话。
2)接口声明
void WGSendToWXWithMiniApp(const eWechatScene &scene,
const unsigned char *title,
const unsigned char *desc,
const unsigned char *thumbImgData,
const int &thumbImgDataLen,
const unsigned char *webpageUrl,
const unsigned char *userName,
const unsigned char *path,
bool withShareTicket,
const unsigned char *messageAction,
const unsigned char *mediaTagName,//3.3.0版本开始新增mediaTagName参数
const eMiniProgramType &type,//3.3.0版本开始新增type参数
const unsigned char *userOpenId);//3.3.0版本开始新增userOpenId参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene | 分享场景(会话/朋友圈),目前只支持分享到会话Session |
title | unsigned char* | 分享标题,长度不超过512字节 |
desc | unsigned char* | 描述内容,长度不超过1K字节 |
thumbImgData | unsigned char* | 小程序缩略图, IOS: 不超过32K(旧版本使用),不超过128K(新版本) Android: 不超过32K(旧版本) |
thumbImgDataLen | int | 小程序缩略图长度 |
webpageUrl | unsigned char* | 旧版本微信打开该小程序分享时,兼容跳转的普通页面url(可任意url,用于老版本兼容) |
userName | unsigned char* | 小程序username,如gh_d43f693ca31f |
path | unsigned char* | 小程序path,可通过该字段指定跳转小程序的某个页面(若不传,默认跳转首页)。对于小游戏,没有页面,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar";可拼接自定义参数,长度 100-200k,太长会导致跨进程传输失败;如:page/indexSelAddr/index?key1=value1&key2=value2 |
withShareTicket | bool | 是否带shareTicket转发(如果小程序页面要展示用户维度的数据,并且小程序可能分享到群,需要设置为YES) |
messageAction | unsigned char* | (小程序分享暂时不可自定义小尾巴,可传空)分享到朋友圈时,游戏可以自定义朋友圈小尾巴行为,详情点击这里 |
mediaTagName | unsigned char* | 3.3.0版本开始新增该参数 此值会传到微信供统计用,点击 规范 可见详情 |
type | eMiniProgramType | 指定小程序版本,分为 Release(0),Test(1),Preview(2)三种版本类型,与小程序版本对应;3.3.0版本开始新增该参数 |
userOpenId | unsigned char* | 指定分享给特定的好友,可传空串;3.3.0版本开始新增该参数 |
4)返回值
通过设置的全局回调的OnShareNotify(ShareRet& shareRet)回调返回数据给游戏, shareRet.flag值表示返回状态, 可能值及说明如下:
eFlag_Succ: 分享成功
eFlag_Error: 分享失败
5)示例代码
WGPlatform::GetInstance()->WGSendToWXWithMiniApp(WechatScene_Session,
(unsigned char*)"小程序分享测试",
(unsigned char*)"测试一下",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"https://www.baidu.com",
(unsigned char*)"gh_e9f675597c15",
(unsigned char*)"page/indexSelAddr/index",
true,
(unsigned char*)"",
(unsigned char *)"MSG_INVITE",//3.3.0版本开始新增mediaTagName参数
ProgramType_Release,//3.3.0版本开始新增type参数
(unsigned char*)"");//3.3.0版本开始新增userOpenId参数
6)特殊说明
要求发起分享的App与小程序属于同一微信开放平台账号。
若微信客户端版本低于6.5.6,小程序类型分享将自动转成网页类型分享。开发者必须填写网页链接字段,确保低版本客户端能正常打开网页链接。
小程序的原始ID获取方法:登录小程序后台-设置-基本设置-账号信息。
7)名词解释
无
4 手Q小程序分享
1)功能描述
您可以调用WGSendToQQWithMiniApp接口将小程序消息分享到手Q会话和空间。
2)接口声明
void WGSendToQQWithMiniApp(
const eQQScene &scene,
unsigned char *title,
unsigned char *desc,
unsigned char *url,
ImageParams &imageParams,
unsigned char *miniProgramAppid,
unsigned char *miniProgramPath,
const eMiniProgramType &type = ProgramType_Release);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene | 标识发送手Q会话或者Qzone(空间需要手Q客户端4.5以上版本支持) |
title | unsigned char * | 结构化消息的标题 |
desc | unsigned char * | 结构化消息的概要信息 |
url | unsigned char * | 兼容低版本的网页链接 |
imageParams | ImageParams | 此struct在android、ios上对应的字段不同。ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen;3.3.32版本开始iOS支持传入图片URL |
miniProgramAppid | unsigned char * | 游戏绑定的小程序appid |
miniProgramPath | unsigned char * | 小程序页面的path;3.3.12版本开始可通过该字段透传自定义信息,在path后拼接key-value即可,如:miniProgramPath = pages/index/index?key1=value1&key2=value2 |
type | eMiniProgramType | 小程序类型,分为正式版(0)、体验版(1) |
4)返回值
无,分享结果通过 WGPlatformObserver 回调返回游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToQQWithMiniApp((eQQScene)cScene,
(unsigned char *)"sendtoqq title",
(unsigned char *)"sendtoqq summary",
(unsigned char *)"https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite&gamedata=gamedata",
imageParams,
(unsigned char *)"1109787314",
(unsigned char *)"pages/index/index",
ProgramType_Release);
6)特殊说明
imageParams参数ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen;3.3.32版本开始iOS支持传入图片URL。
3.3.12版本开始 miniProgramPath 参数可携带自定义透传信息,在path后拼接key-value即可,如: 原 miniProgramPath 传递参数 miniProgramPath = pages/index/index
携带自定义信息,如:组队信息携带后 miniProgramPath = pages/index/index?key1=value1&key2=value2
在异账号里接收自定义透传信息。OnWakeupNotify 的 wakeupRet.messageExt 即为玩家分享时传递的自定义信息,messageExt 为传递参数的 JSON 格式的字符串{"key1": "value1","key2": "value2"}。 当 手Q 小程序拉起 App 时,如果不携带自定义信息,就没有 OnWakeupNotify 回调产生,OnWakeupNotify 的注册参考异账号处理。
{
// TODO GAME 在异账号这里接收自定义透传信息,如:手 Q组队信息
if (eFlag.eFlag_Succ == wakeupRet.flag || eFlag.eFlag.eFlag_NeedLogin == wakeupRet.flag {
var messageExt = wakeupRet.messageExt;
// messageExt 为传递参数的 JSON 格式的字符串{"key1": "value1","key2": "value2"}
}
};
7)名称解释
无
分享纯文字到QQ空间
1)功能描述
您可以调用WGSendToQQWithText接口将纯文字分享到QQ空间。3.3.0版本开始新增该接口
2)接口声明
void WGSendToQQWithText(unsigned char* text, unsigned char* extraScene, unsigned char* messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
text | unsigned char* | 需要分享的内容 |
extraScene | unsigned char* | 区分分享的场景,用于异化小尾巴展示和feeds点击行为,需要与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | unsigned char* | 游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
WGPlatform::GetInstance()->WGSendToQQWithText((unsigned char*)"text",
(unsigned char *)"1",
(unsigned char *)"msdk");
6)特殊说明
无
7)名词解释
无
启动小程序
1 启动微信小程序
1)功能描述
您可以调用WGLaunchMiniApp接口启动小程序。3.3.0版本开始新增该接口;3.3.17版本开始回调从OnShareNotify
调整为OnWakeUpNotify
,透传参数统一放在wakeupRet.messageExt
字段中。
2)接口声明
void WGLaunchMiniApp(const unsigned char *userName,
const unsigned char *path,
const eMiniProgramType &type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
userName | unsigned char* | 填小程序原始id |
path | unsigned char* | 拉起小程序页面的可带参路径,不填默认拉起小程序首页 |
type | eMiniProgramType | 指定小程序版本,分为 release(0),test(1),preview(2)三种版本类型 |
4)返回值
无
5)示例代码
WGPlatform::GetInstance()->WGLaunchMiniApp((unsigned char*)"gh_e9f65127c15",
(unsigned char*)"page/indexSelAddr/index",
ProgramType_Release);
6)特殊说明
3.3.17版本开始回调从OnShareNotify
调整为OnWakeUpNotify
,透传参数统一放在wakeupRet.messageExt
字段中。
7)名词解释
无
2 启动手Q小程序
1)功能描述
您可以调用 WGLaunchQQMiniApp 接口启动手Q小程序,需要注册WGPlatformObserver
并通过OnWakeUpNotify
进行处理,透传参数统一放在wakeupRet.messageExt
字段中。3.3.21 版本开始新增该接口。
2)接口声明
void WGLaunchQQMiniApp(const unsigned char *miniProgramAppid,
const unsigned char *miniProgramPath,
const eMiniProgramType &type = ProgramType_Release);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
miniProgramAppid | unsigned char* | 必填,小程序的AppID |
miniProgramPath | unsigned char* | 非必填,小程序的展示路径,不填展示默认小程序首页 |
type | eMiniProgramType | 非必填,小程序的类型,默认正式版(ProgramType_Release) |
4)返回值
无
5)示例代码
WGPlatform::GetInstance()->WGLaunchQQMiniApp((unsigned char*)"123456",
(unsigned char*)"xxx",
ProgramType_Release);
6)特殊说明
info.plist文件中的LSApplicationQueriesSchemes字段中需要添加mqqopensdklaunchminiapp,否则无法正常唤起QQ。
7)名词解释
无
拉起微信业务,分享到微信游戏(好玩)
1)功能描述
提供第三方通知微信启动内部浏览器,分享到微信游戏(好玩),打开指定业务的网页或小程序等功能。3.3.6版本开始新增该接口。
2)接口声明
void WGSendToWXWithOpenBusinessView(const unsigned char *businessType,
const unsigned char *query,
const unsigned char *extInfo,
const unsigned char *extData);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
businessType | const unsigned char * | 业务内容,暂时使用 nativeShareToGameHaoWan(必填) |
query | const unsigned char * | 业务参数(选填,目前不使用) |
extInfo | const unsigned char * | 业务要传递的额外信息(Json格式)(是指传入和businessType有关的业务参数,是和业务约定的,比如打开小程序时,extInfo里面可以加参数指定打开小程序的版本;里面的gameinfo 中的 appid 和 appName 为必填字段,appid 传微信 appid;appName 传游戏名,不做限制可填任意值。格式参考:{"appid":"YOUR_WECAHT_APPID","appName":"MSDKDemo"}) |
extData | const unsigned char * | iOS专用,用来传递视频(选填;和业务相关的二进制数据,比如businessType是游戏视频分享到微信好玩,extData就传入视频的二进制数据) |
4)返回值
无
5)示例代码
//本地视频
WGPlatform::GetInstance()->WGSendToWXWithOpenBusinessView((unsigned char*)"nativeShareToGameHaoWan", (unsigned char*)"", (unsigned char*)"{\"thumbUrl\":\"http://shp.qpic.cn/record_smoba/0/53209e869e71dc351129059fbb5f748dT1552892652598430/\" , \"needEdit\":1, \"gameInfo\":{\"battleId\":\"game12345\",\"appid\":\"YOUR_WECAHT_APPID\",\"appName\":\"MSDKDemo\"}}", (unsigned char*)[testVideoPath UTF8String]);
//云视频
WGPlatform::GetInstance()->WGSendToWXWithOpenBusinessView((unsigned char*)"nativeShareToGameHaoWan", (unsigned char*)"", (unsigned char*)"{\"videoUrl\":\"https://qt.qq.com/php_cgi/cod_video/php/get_video_url.php?vid=2a495e10fc03426fb8e4def77fc68a57&game_id=1007039\", \"thumbUrl\":\"http://shp.qpic.cn/record_smoba/0/53209e869e71dc351129059fbb5f748dT1552892652598430/\" , \"needEdit\":1, \"gameInfo\":{\"battleId\":\"game12345\",\"appid\":\"YOUR_WECAHT_APPID\",\"appName\":\"MSDKDemo\"}}", (unsigned char*)"");
分享到微信状态(跳转网页)
1)功能描述
分享到微信状态,成功之后,状态相关信息将显示在微信 -> 我的个人头像下面,点击状态下面应用名称将自动跳转到指定页面。3.3.19 版本开始新增该接口,该版本支持分享图片到微信状态。
2)接口声明
void WGSendToWXStateWithPhoto(const unsigned char *stateId,
const unsigned char *stateTitle,
ImageParams &imageParams,
const unsigned char *jumpUrl);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
stateId | unsigned char* | 状态ID,选填,不同的状态ID会显示不同的Icon |
stateTitle | unsigned char* | 状态标题,选填,限制 32 个字符以内 |
imageParams | ImageParams | 图片信息,必填,图片比例为9:16;此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen |
jumpUrl | unsigned char* | 跳转URL,必填,点击来源小尾巴后跳转的页面url,游戏先支持跳到“微信游戏圈”页面 |
4)返回值
无
5)示例代码
WGPlatform::GetInstance()->WGSendToWXStateWithPhoto((unsigned char*)"1019",
(unsigned char*)"stateTitle",
imageParams,
(unsigned char*)"jumpUrl");
6)特殊说明
- 以上为分享图片到微信状态示例,其它语言接口类似,对于游戏,stateId可以填写1019,stateTitle设置后将作为编辑页默认值,jumpUrl为游戏圈地址,跳转到微信之后,除了jumpUrl,其它均能够自主修改。
- 图片建议9:16的尺寸
- jumpUrl请注意填写游戏圈地址
- 如需接入,需联系MSDK助手对接。
7)名词解释
无
分享到微信状态(跳转小程序)
1)功能描述
分享到微信状态,成功之后,状态相关信息将显示在微信 -> 我的个人头像下面,点击状态下面的小程序名称将自动跳转到指定小程序页面。3.3.29 版本开始新增该接口,该版本支持分享图片到微信状态。
2)接口声明
void WGSendToWXStateWithPhotoOpenMiniApp(const unsigned char *stateId,
const unsigned char *stateTitle,
ImageParams &imageParams,
const unsigned char *userName,
const unsigned char *path,
const eMiniProgramType &type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
stateId | unsigned char* | 状态ID,选填,不同的状态ID会显示不同的icon,对于游戏可填1019 |
stateTitle | unsigned char* | 状态标题,选填,限制32个字符以内 |
imageParams | ImageParams | 图片信息,必填,图片比例为9:16;此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen |
userName | unsigned char* | 必填,需要跳转的小程序username |
path | unsigned char* | 小程序path,可通过该字段指定跳转小程序的某个页面,若不填则默认跳转首页 |
type | eMiniProgramType | 指定小程序版本,分为 Release(0),Test(1),Preview(2)三种版本类型,与小程序版本对应 |
4)返回值
无
5)示例代码
WGPlatform::GetInstance()->WGSendToWXStateWithPhotoOpenMiniApp((unsigned char*)"1019",
(unsigned char*)"stateTitle",
imageParams,
(unsigned char*)"YOUR_MINI_APP_ID",
(unsigned char*)"YOUR_MINI_APP_PATH",
ProgramType_Release);
6)特殊说明
- 以上为分享图片到微信状态示例,其它语言接口类似,对于游戏,stateId可以填写1019,stateTitle设置后将作为编辑页默认值。
- 图片建议9:16的尺寸
- 如需接入,需联系MSDK助手对接。
7)名词解释
无
1)功能描述
一键分享用户在游戏内生成的视频到微信视频号。3.3.19 版本开始新增该接口。自2024年起微信正式下架并停止维护该功能。因此后续新产品将不再支持此功能的接入,同时微信侧建议已接入的历史产品对该能力进行下线处理。
2)接口声明
void WGSendToWXChannelShareVideo(VideoParams &videoParams, const unsigned char *messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
videoParams | VideoParams | 视频信息,必填;此struct在Android和iOS上对应的字段不同,Android需要填写视频路径:android_videoPath,iOS需要填写系统相册中视频标识符PHAsset localIdentifier:ios_videoLocalIdentifier。 |
messageExt | unsigned char* | 拓展字段,选填,携带额外信息,当前版本暂未使⽤ |
4)返回值
无
5)示例代码
WGPlatform::GetInstance()->WGSendToWXChannelShareVideo(videoParams,
(unsigned char*)"messageExt");
6)特殊说明
- 如需接入,需联系MSDK助手对接。
- 视频格式目前仅支持MP4,时长不超过30分钟,大小不超过450M,宽高比在1:3 - 3:1之间。
- 涉及到的struct参数VideoParams在Android和iOS上对应的字段不同,Android需要填写视频路径:android_videoPath,iOS需要填写系统相册中视频标识符PHAsset localIdentifier:ios_videoLocalIdentifier。
7)名词解释
无
微信视频号直播
1)功能描述
MSDK 封装视频号直播接口,使用 WGSendToWXChannelStartLive 接口,入参为业务所传 Json 串 channelLiveJosn 及扩展字段 messageExt。3.3.26 版本开始新增该接口。
2)接口声明
void WGSendToWXChannelStartLive(string channelLiveJosn, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
channelLiveJosn | string | 业务发起视频号直播所需的 Json 字符串,必填 |
messageExt | string | 扩展字段,选填,当前版本暂未使用 |
4)示例代码
channelLiveJosn 为业务发起视频号直播所需的 Json 字符串。具体请参照接口文档:https://doc.weixin.qq.com/doc/w3_AJIAmAbDAK4LXcbbMdHT6OnjGLNvf?scode=AJEAIQdfAAoCcEODzyAJIAmAbDAK4。
string channelLiveJosn = "{\"liveJsonInfo\":\"{\\\"extraAntiInfo\\\":\\\"bQ9Xn5XOTvUmrcjt3%2FOWSs4HxJRt5Nz%2FY3peUMSqoufJIVLJAWZs4nYZ9gM3SoKH\\\",\\\"routeScene\\\":3,\\\"liveEntryScene\\\":1,\\\"appid\\\":\\\"wxcde873f99466f74a\\\"}\",\"openID\":\"oGRTijm8K4JWxwe67BjsAF1t6Y7o\"}";
string messageExt = "MSDK WeChat Channel Start Live";
WGPlatform.Instance.WGSendToWXChannelStartLive(channelLiveJosn, messageExt);
返回结果:
成功跳转到微信,并拉起视频号直播页,成功时 MSDK 无回调。
只有当 opensdk 异常时会通过 MsdkEvent.Instance.ShareEvent 返回结果
MsdkEvent.Instance.ShareEvent += (ShareRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 分享成功
}
else
{
// 分享失败处理
}
};
5)特殊说明
- 当所传的 openID 为空时,默认设置空串
- 具体使用方法联系MSDK助手对接
1)功能描述
MSDK 封装手Q小世界分享接口,使用 WGSendToQQWithCommonShare 接口,入参为业务所传 servieID 及扩展参数 extraJson。3.3.26 版本开始新增该接口。
2)接口声明
void WGSendToQQWithCommonShare(string serviceID, string extraJson);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
serviceID | string | 服务 id,每个对接的手Q业务都需要找手Q互联分配服务 id |
extraJson | string | 可扩展参数,该数据会透传到手Q,传入内容与手Q侧约定 |
4)示例代码
string serviceID = "3004";
string extraJson = "{\"local_video_path\":\"\\/storage\\/emulated\\/0\\/Android\\/data\\/com.example.wegame\\/files\\/video.mp4\"}";
WGPlatform.Instance.WGSendToQQWithCommonShare(serviceID, extraJson);
通过分享回调,接收返回结果:
MsdkEvent.Instance.ShareEvent += (ShareRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 分享成功
}
else
{
// 分享失败处理
}
};
5)特殊说明
- 分配服务 id 联系MSDK助手对接
微信原生分享
1)功能描述
MSDK 封装微信原生分享接口,使用 WGSendToWXNativeGamePage 接口,可分享到微信会话及朋友圈。3.3.28 版本开始新增该接口。
2)接口声明
void WGSendToWXNativeGamePage(const eWechatScene &scene,
unsigned char *title,
unsigned char *desc,
unsigned char *mediaTagName,
unsigned char *thumbImgData,
const int &thumbImgDataLen,
const bool isVideo,
const int &videoDuration,
unsigned char *shareData,
unsigned char *messageExt,
unsigned char *messageAction,
unsigned char *userOpenId);//3.3.30版本开始新增userOpenId参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
title | unsigned char * | 标题;不能超过512字节 |
desc | unsigned char * | 概要信息;不能超过1K |
mediaTagName | unsigned char * | 此值会传到微信供统计用 |
thumbImgData | unsigned char * | 缩略图文件数据 |
thumbImgDataLen | int | 缩略图数据长度;大小不能超过256K |
isVideo | bool | 是否是视频类型 |
videoDuration | int | 视频时长,单位秒(视频类型时,必要) |
shareData | unsigned char * | 透传字段,不超过100K |
messageExt | unsigned char * | 游戏自定义透传字段,不需要的话可以填写空串 |
messageAction | unsigned char * | 保留字段;可以填写空串 |
userOpenId | unsigned char * | 指定分享给特定的好友;3.3.30 版本开始新增该参数 微信会话场景:若业务不传递 userOpenId(空串),默认拉起好友列表;若指定好友 openid,则拉起对应好友进行分享 微信朋友圈场景:userOpenId 传递空串 |
4)返回值
无,分享结果通过 WGPlatformObserver 回调 OnShareNotify 函数返回游戏。
5)示例代码
WGPlatform::GetInstance()->WGSendToWXNativeGamePage((eWechatScene)cScene, (unsigned char *)"SendToWXNativeGamePage", (unsigned char *)"原生分享", (unsigned char *)"MSG_INVITE", (unsigned char*)thumbImgData, thumbImgDataLen, isVideo, videoDuration, (unsigned char *)shareData, (unsigned char *)"SendToWeixin_extInfo", (unsigned char *)"", (unsigned char *)"");
6)注意事项
- 使用此接口时,请阅读微信原生分享相关文档:https://iwiki.woa.com/p/4008426990
- 原生分享依赖微信客户端版本,需使用 iOS 8.0.34 及以上版本微信客户端;指定分享给特定好友时,需使用 iOS 8.0.43(暂定)及以上版本微信客户端