分享

本章所列接口均需依赖手Q环境,测试工程无法正常返回值

手机QQ 7.6.5开始支持

BK.QQ.share支持分享至QQ聊天窗、空间、微信、朋友圈四种渠道。参数如下

参数 类型 名称 备注
shareInfo object 分享内容 具体取值如下例子。
callback function 分享结果回调 形如 function (retCode, shareDest, isFirstShare)。参数分别为retCode返回值(0)代表成功,shareDest分享渠道结果(0QQ聊天窗,1空间,2微信,3朋友圈),isFirstShare

示例代码如下

  1. var shareInfo = {
  2. summary:"分享正文", //QQ聊天消息标题
  3. picUrl:picUrl, //QQ聊天消息图片
  4. extendInfo:extendInfo, //QQ聊天消息扩展字段
  5. localPicPath:savedPath, //分享至空间、微信、朋友圈时需要的图。(选填,若无该字段,系统使用游戏对应的二维码)
  6. gameName:"游戏名" //游戏名,暂用与生成二维码
  7. };
  8. BK.QQ.share(shareInfo, function (retCode, shareDest, isFirstShare) {
  9. BK.Script.log(1, 1, "retCode:" + retCode + " shareDest:" + shareDest + " isFirstShare:" + isFirstShare);
  10. if (retCode == 0) {
  11. if (shareDest == 0 /* QQ */) {
  12. //聊天窗
  13. BK.Script.log(1, 1, "成功分享至QQ");
  14. }
  15. else if (shareDest == 1 /* QZone */) {
  16. //空间
  17. BK.Script.log(1, 1, "成功分享至空间");
  18. }
  19. else if (shareDest == 2 /* WX */) {
  20. //微信
  21. BK.Script.log(1, 1, "成功分享至微信");
  22. }
  23. else if (shareDest == 3 /* WXCircle */) {
  24. // 朋友圈
  25. BK.Script.log(1, 1, "成功分享至朋友圈");
  26. }
  27. }
  28. else if (retCode == 1) {
  29. BK.Script.log(1, 1, "分享失败" + retCode);
  30. }
  31. else if (retCode == 2) {
  32. BK.Script.log(1, 1, "分享失败,用户取消分享:" + retCode);
  33. }
  34. });

 4.2.分享  - 图1

Q:其他用户如何获取分享出去后的extendInfo信息?

extendInfo只能在分享至手Q中使用,分享只空间、微信、朋友圈不可用。

例如:A用户传入extendInfo为"12345",B用户点击气泡启动游戏后,从GameStatusInfo.gameParam中为"12345" 4.2.分享  - 图2

2.分享链接

将链接分享至聊天窗、空间、微信。其他人该分享后,跳转至连接对应的网址

使用函数 BK.QQ.shareToMQQ(title, summary, detailUrl, picUrl)具体参数如下:

参数 类型 名称 备注
title string 标题
summary string 分享内容
detailUrl string 跳转详情url 游戏方提供
picUrl string 图片url 游戏方提供

实例代码:

  1. BK.QQ.shareToMQQ("迪斯尼过马路战绩","我获得了第1名,快来挑战我","www.xxx.com","xxx.com/xx.png");

分享效果以及对应参数

 4.2.分享  - 图3

tips: 分享H5链接的方式,将会逐步淘汰,请换用shareToArk等分享接口。

3.分享QQ聊天窗

将游戏分享至手机QQ聊天窗。其他人点击该消息气泡后,会触发打开游戏。

BK.QQ.shareToArk(roomId, summary, picUrl, isSelectFriend, extendInfo,callback)

分享带自定义数据以及图片的消息气泡至聊天窗其他用户点击此消息气泡后,带上自定义的消息启动游戏。

参数说明:

参数 类型 名称 备注
roomId number 房间id 如使用BK.Room房间逻辑,可填入对应roomId,如开发者自建房间,填0
summary string 分享wording
picUrl string 图片的网络链接
isSelectFriend boolean 选择好友 为true则跳出选择好友的列表
extendInfo string 扩展信息 开发者可自定义该信息,用与传输参数
callback function 分享结果回调 可选 ,具体类型如下例 (手Q7.6.3以以上版本支持)

例子:

  1. BK.QQ.shareToArk(0, 'wording', 'http://i.hudongcdn.com/8b4e1c52e5a1b88b42ae510d4a17187c2003_20180326.png', true, 'extendInfo',function(errCode){
  2. if(errCode == 0){
  3. //分享成功
  4. }else{
  5. //分享失败
  6. }
  7. });

 4.2.分享  - 图4

其他

Q:其他用户如何获取分享出去后的extendInfo信息?

例如:A用户传入extendInfo为"12345",B用户点击气泡启动游戏后,从GameStatusInfo.gameParam中为"12345" 4.2.分享  - 图5

BK.QQ.shareToArkFromFile(roomId, summary, extendInfo, path)

分享将本地径下的图片以及自定义数据图片的消息气泡至聊天窗与BK.QQ.shareToArk相似,与其不同的是本接口分享的图片来自游戏本地路径需要引用qqPlayCore.js

参数说明:

参数 类型 名称 备注
roomId number 房间id
summary string 分享wording
extendInfo string 扩展信息 开发者可自定义该信息,用与传输参数
path string 图片的本地路径

例子:

  1. BK.QQ.shareToArkFromFile(1, 'wording', 'extendInfo', 'GameRes://resource/texture/test.png');

BK.QQ.shareToArkFromBuff(roomId, summary, extendInfo, buff)

将BK.Buffer中的图片内容分享至聊天窗 与BK.QQ.shareToArk相似,与其不同的是本接口分享的图片来自图片装有图片数据的BK.Buffer对象需要引用qqPlayCore.js

参数说明:

参数 类型 名称 备注
roomId number 房间id
summary string 分享wording
extendInfo string 扩展信息
buff object BK.Buffer对象

例子:

  1. var buff = BK.FileUtil.readFile("GameRes://resource/texture/monster.png");
  2. BK.QQ.shareToArkFromBuff(1, 'wording', 'extendInfo', buff);

原文: https://hudong.qq.com/docs/engine/userInfo/share/intro.html