分享接口处理
玩吧分享接口开发说明
分享流程
接口概述
1、mqq.ui.setOnShareHandler 是比较特殊的一类接口,用于监听分享面板的点击事件,一般只在游戏初始化时执行一遍。其中回调参数type,代表分享类型(QQ好友0,QQ空间1,微信好友2,朋友圈3),回调中必须执行shareMessage或shareArkMessage
2、mqq.ui.shareMessage 是真正的分享接口。如果是选择分享,shareMessage必须携带type,这个type来源于setOnShareHandler的回调。如果是直接分享,需要指定type,一般为0。
3、mqq.ui.showShareMenu 是拉起分享面板。在手Q/手空/微端里,只用于拉起分享面板。而在第三方APP如腾讯视频、腾讯新闻、天天快报里,因为没有setOnShareHandler,所以必现携带params参数和callback回调。
4、shareArkMessage是手Q独有接口,其他平台都没有。所以在选择分享时setOnShareHandler的回调中,必须判断是手Q平台而且type为0时,才能调用shareArkMessage。使用之前必须保证在管理端接入过ark图片。
注意事项
- 重复设置mqq.ui.setOnShareHandler将覆盖之前设置的回调
- 可单独使用mqq.ui.shareMessage,按照特定游戏逻辑(如邀请)主动触发分享操作,发放奖励;
- 如果主动分享不指定分享渠道,可搭配使用接口mqq.ui.showShareMenu,拉起分享渠道选择页面
- 独立版进入游戏必须设置分享信息(没有设置直接分享将会走截图分享逻辑,但webgl无法截图,所以分享会黑屏)
- share_url必须是window.OPEN_DATA.shareurl(可以拼接自定义参数)
总结:
1、setOnShareHandler必须要有。直接分享和选择分享可以二选一,建议使用选择分享,这样用户可以有更多的分享选择,有利于游戏在其他平台的曝光,例如手Q分享到微信后,就可以在微信里玩游戏。 2、showShareMenu的params和callback虽然只是第三方APP里使用,但是建议所有地方都带上。
错误案例
过往的很多游戏都会犯下很多分享的错误: 1、setOnShareHandler 回调直接分享ark. 2、分享面板showShareMenu未带参数,导致第三方APP里分享文案是默认的 3、未在管理端配置好shareArkMessage的大图就调用了shareArkMessage
代码示例(已覆盖所有渠道包括结合版独立版和第三方APP)
//分享设置
window.addEventListener('load', function () {
// code...
mqq.invoke('ui','setOnShareHandler',function(type){
mqq.invoke('ui','shareMessage',{
title: '自定义的分享标题',
desc: '自定义的分享描述',
share_type: type,
share_url: window.OPEN_DATA.shareurl,
image_url: window.OPEN_DATA.appicon,
back: true
},function(result){
if(result && result.retCode ==0){
alert('分享成功');
}else{
alert('分享取消');
}
});
});
});
//拉起分享菜单
shareBtn.addEventListener('click', function () {
mqq.ui.showShareMenu();
// or mqq.invoke('ui','shareMessage',{...
});