抖音开放平台Logo
控制台

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

返回值

代码示例

示例一:

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;
});