抖音开放平台Logo
开发者文档
控制台
  • API 概览
  • C# API
  • 开放接口
  • 转发
  • 群聊
  • 关注
  • 数据分析
  • 基础
  • 渲染
  • 设备
  • 文件
  • 位置
  • 媒体
  • 网络
  • 转发
  • ShareParam
  • tt.shareAppMessage
  • tt.showShareMenu
  • tt.hideShareMenu
  • tt.onShareAppMessage
  • tt.offShareAppMessage
  • tt.shareMessageToFriend
  • tt.navigateToVideoView
  • 小游戏组队分享能力
  • 数据缓存
  • 广告
  • 界面
  • 支付
  • Worker
  • tt.onShareAppMessage
    收藏
    我的收藏

    基础库 1.0.0 开始支持本方法,这是一个同步方法。

    监听用户点击右上角菜单中的“转发”按钮时触发的事件。

    前提条件
    业务背景
    使用限制
    注意事项
    • 该方法可以监听用户通过右上角菜单中触发的分享操作,在不同宿主端具体的操作会有所差别,在抖音中包括分享和拍抖音,在头条包括分享和发头条,以此类推。
    • 该方法的实际调用链路为:
      1. 开发者注册此事件
      2. 用户点击小游戏菜单中的分享或者拍抖音等按钮
      3. 自动调用开发者通过 tt.onShareAppMessage 定义的函数,并传入带有 channel 参数的对象,执行得到该函数的返回对象
      4. 接着调用 tt.shareAppMessage ,将上一步返回的对象传入其中,拉起分享
    • 当开发者发现虽然已成功配置分享内容,但是调试时内容无法生效时,有可能是分享内容触发了内容安全检测失败,导致分享失败。发生这种情况时,开发者可以尝试对分享内容进行内容安全检测,具体操作手段见内容安全检测
    相关教程

    语法

    tt.onShareAppMessage(callback)

    参数说明

    callback

    类型默认值必填说明最低支持版本
    function

    监听触发“转发”的函数。函数可以返回 ShareParam 对象,该返回对象可以用来自定义分享的内容。

    1.0.0

    callback 是一个回调函数,接收 object 类型的参数,属性如下:

    属性名类型说明最低支持版本
    channelstring
    转发内容类型,有 article、video
    1.0.0

    channel 参数说明

    不同转发内容类型含义如下:

    类型

    含义

    article

    在头条内用户点击「发头条 - 发图文」时

    video

    在头条内用户点击「发头条 - 发视频」时

    undefined

    其它场景均为 undefined

    返回值

    错误码

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

    代码示例

    示例一:

    tt.onShareAppMessage(function (res) { //当监听到用户点击了分享或者拍抖音等按钮后,会执行该函数 console.log(res.channel); // do something return { //执行函数后,这里是需要该函数返回的对象 title: "分享标题", imageUrl: "https://example.com/test.png", query: "k1=v1&k2=v2", success() { console.log("分享成功"); }, fail(e) { console.log("分享失败", e); }, }; //返回的对象会传入tt.shareAppMessage进行最终分享 });

    示例二:

    tt.onShareAppMessage(function (res) { console.log(res.channel); // do something const shareData = { title: "分享标题", imageUrl: "https://example.com/test.png", query: "k1=v1&k2=v2", 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; case "article": default: break; } return r; });