分享接口处理

玩吧分享接口开发说明

分享流程

小游戏分享流程图

接口概述

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图片。

注意事项

  1. 重复设置mqq.ui.setOnShareHandler将覆盖之前设置的回调
  2. 可单独使用mqq.ui.shareMessage,按照特定游戏逻辑(如邀请)主动触发分享操作,发放奖励;
  3. 如果主动分享不指定分享渠道,可搭配使用接口mqq.ui.showShareMenu,拉起分享渠道选择页面
  4. 独立版进入游戏必须设置分享信息(没有设置直接分享将会走截图分享逻辑,但webgl无法截图,所以分享会黑屏)
  5. 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',{...
});

浮点分享默认文案

调用setOnShareHandler + shareMessage接口后分享文案

调用showShareMenu拉起分享菜单

好友分享打开游戏视频