抖音开放平台Logo
开发者文档
“/”唤起搜索
控制台
  • JavaScript API
  • API 概览
  • 基础
  • 界面
  • 渲染
  • 数据缓存
  • 文件
  • 位置
  • 设备
  • 网络
  • 媒体
  • Worker
  • 数据分析
  • 支付
  • 广告
  • 开放能力
  • 登录
  • 侧边栏能力
  • 设置
  • 授权
  • 添加到桌面
  • 游戏排行榜
  • 订阅消息
  • 开放数据域
  • 开放数据
  • 开放数据分组
  • 客服消息
  • 直播能力
  • 推荐流直出游戏能力
  • 社交互动能力
  • 公会群能力
  • 意见反馈
  • 游戏站
  • 转发
  • ShareParam
  • tt.shareAppMessage
  • tt.showShareMenu
  • tt.hideShareMenu
  • tt.onShareAppMessage
  • tt.offShareAppMessage
  • tt.shareMessageToFriend
  • tt.navigateToVideoView
  • 小游戏组队分享能力
  • 关注
  • 群聊
  • 收藏
  • C# API
  • tt.onShareAppMessage
    收藏
    我的收藏

    基础库 1.0.0 开始支持本方法,这是一个同步方法。
    本API为被动分享监听操作:监听用户点击平台提供的分享入口时触发的事件(如右上角更多面板中的分享、排行榜中的分享),以指定用户的分享内容。
    主动分享调用(游戏内主动拉起发布器、好友邀请、录屏分享等)详见 tt.shareAppMessage
    前提条件
    业务背景
    使用限制
    注意事项
      该方法可以监听用户通过右上角菜单中触发的分享操作,在不同宿主端具体的操作会有所差别,在抖音中包括分享和拍抖音,在头条包括分享和发头条,以此类推。
      该方法的实际调用链路为:
      a.开发者注册此事件
      b.用户点击小游戏菜单中的分享或者拍抖音等按钮
      c.自动调用开发者通过 tt.onShareAppMessage 定义的函数,并传入带有 channel 参数的对象,执行得到该函数的返回对象
      d.接着调用 tt.shareAppMessage ,将上一步返回的对象传入其中,拉起分享
      当开发者发现虽然已成功配置分享内容,但是调试时内容无法生效时,有可能是分享内容触发了内容安全检测失败,导致分享失败。发生这种情况时,开发者可以尝试对分享内容进行内容安全检测,具体操作手段见内容安全检测
    相关教程

    语法

    tt.onShareAppMessage(callback)

    参数说明

    callback

    类型
    默认值
    必填
    说明
    最低支持版本
    function
    监听触发“转发”的函数。函数返回 ShareParam 对象,该返回对象可以用来自定义分享的内容。
    1.0.0
    callback 是一个回调函数,接收和返回的参数都是 object 类型的参数,属性详见 ShareParam
      接收参数使用说明:
      可通过 channel 判断用户即将触发什么类型的分享,值含义说明详见 ShareParam
      可通过 res.extra.position 判断用户触发分享的点位:top 表示为右上角更多面板中的分享。

    返回值

    错误码

    errNo
    errMsg
    说明
    最低支持版本
    20000
    internal error
    小游戏框架内部错误,有需要请创建工单咨询
    1.0.0
    20001
    invalid param
    参数错误
    1.0.0

    代码示例

    示例一:
    tt.onShareAppMessage(function (res) { console.log(res.channel); // do something const shareData = { success() { console.log("分享成功"); }, fail(e) { console.log("分享失败", e); }, }; const r = Object.assign({ channel: res.channel }, shareData); //channel值无法修改,并会在调用tt.shareAppMessage时自动带上 switch (res.channel) { case "video": r.extra = { videoTopics: ["test1 videoTopics", "test2 videoTopics"], // 抖音小视频话题列表 videoPath: "videotest.mp4", // 如果为抖音或者头条小视频,可以直接传本地视频路径 //以抖音为例,使用videoPath后,用户点击拍抖音时会去分享开发者指定的视频。 }; break; default: if (res.extra.position === "top") { // 为用户点击右上角更多面板中的分享 r.templateId = "", // 替换为审核通过的templateId } else { // 为用户点击游戏内平台拉起的分享,如排行榜中的分享 r.templateId = "", // 替换为审核通过的templateId } break} return r; });