调起方法

名词解释

  1. shareOption——系统调用开发者注册的回调时,传递给回调的数据,包括用户选择的调起方式等
  2. shareParam——开发者最终传递给发布器的数据,可以根据约定传入部分自定义数据

入口控制

1.如果显示定义了 ​[Page|tt].onShareAppMessage(callback)​ 方法,在小程序右上角胶囊按钮里会自动带上「分享」「发头条」等入口。其中小程序里的方法注册在 ​Page​ 上,小游戏直接挂在 ​tt​ 上 2. 无论是否显示定义上述方法,均可以通过 ​tt.showShareMenu()​ 和 ​tt.hideShareMenu()​ 控制入口的显示与隐藏。 3. 开发者在开发小程序时,还可以在TTML/WXML文件里通过 ​button​ 组件自定义入口。其中通过 ​data-channel​ 字段指定调起方式(默认为「分享」),如:

<button class="custom-share-button" open-type="share" data-channel="video" data-qrcode="inv34+23==">Click Me!</button>
  1. 开发者在开发小游戏时,可以在图形界面绘制自定义按钮,在按钮的回调中调用​tt.shareAppMessage(shareParam)​来直接调起发布器。

调用逻辑

如上图所示,调用可大体分为主动调用(C)和被动调用(A、B、C)两种模式。小程序只能使用被动调用,小游戏可以使用主动和被动两种。

主动调用

开发者直接通过 ​tt.shareAppMessage(shareParam)​ 方法,将 shareParam 传递给系统发布器即可。

被动调用

无论用户点击何种入口,小程序框架均会将 shareOption 带给​[Page|tt].onShareAppMessage(callback)​方法中注册的​callback​回调。开发者可以在回调中根据参数处理相应逻辑,最后返回 shareParam 即可。如:

Page({
  onShareAppMessage(function (shareOption) {
    switch(shareOption.channel){
      case 'video':
        return {
          extra: {
            videoPath : shareOption.target.dataset.path
          }
        };
        break;
      case 'qrcode':
        ...
        break;
      default:
        ...
        break;
    }
  }),
});

其中,shareOption的结构如下:

{
  from: '',     // 合法值包括 button 和 menu,分别对应两种被动分享方式
  target: null, // 当from=button时,target指向<button>对象,当from=menu时,target为null
  channel: '',  // 预设的分享方式(通过button分享时,取值自data-channel)
}

shareParam说明 一个典型的shareParam的形式如下,大体上分为基础参数和扩展参数extra两部分:

{
  channel: '',
  title: '',
  imageUrl: '',
  path: '',
  extra: {
    videoPath: ''
  }
}

基础参数说明

所有的分享/发布内容都需要经过独立的审核后才会放出。 开发者可以在开放平台后台预先设置好一些分享默认内容,当实际代码所指定的内容审核通过前,会展示该默认内容。

姓名 说明
channel 指定发布器的调用方式,默认为share。具体内容见下方「特殊参数说明」
title 想要分享/发布的内容标题。
imageUrl 想要分享/发布的内容,当调用方式支持传入一张图片时,可以通过此参数指定。
query/path 分享/发布的内容会自动与小程序绑定,同时在UI上提供进入小程序的入口。开发者如果想为该入口添加参数可以通过设置query/path实现。其中小程序需要传递path字段,小游戏是query字段。

扩展参数extra说明

功能描述 channel 支持的app 基础参数说明 extra参数说明
分享面板 share 今日头条抖音
发布图文内容 article 今日头条
发布视频内容 video 今日头条 1. 不支持imageUrl,title参数
2. 如果无需指定videoPath时请勿为该参数赋值,否则会导致进入错误的发布器页面
可以指定一个本地视频直接进入编辑页面videoPath(类型是string)
发布视频内容 video 抖音 1. 不支持imageUrl参数
2. title参数在发布过程中对用户透明,经审核后可放出
1. 话题列表videoTopics(类型是string[])
2. 可以指定一个本地视频直接进入编辑页面videoPath(类型是string)