調(diào)起方法

2020-02-12 17:43 更新

名詞解釋

  1. shareOption——系統(tǒng)調(diào)用開發(fā)者注冊的回調(diào)時,傳遞給回調(diào)的數(shù)據(jù),包括用戶選擇的調(diào)起方式等
  2. shareParam——開發(fā)者最終傳遞給發(fā)布器的數(shù)據(jù),可以根據(jù)約定傳入部分自定義數(shù)據(jù)


入口控制

  1. 如果顯示定義了 ?[Page|tt].onShareAppMessage(callback)? 方法,在小程序右上角膠囊按鈕里會自動帶上「分享」「發(fā)頭條」等入口。其中小程序里的方法注冊在 ?Page? 上,小游戲直接掛在 ?tt? 上
  2. 無論是否顯示定義上述方法,均可以通過 ?tt.showShareMenu()? 和 ?tt.hideShareMenu()? 控制入口的顯示與隱藏
  3. 開發(fā)者在開發(fā)小程序時,還可以在 TTML/WXML 文件里通過 ?button? 組件自定義入口。其中通過 ?data-channel? 字段指定調(diào)起方式(默認為「分享」),如:
    <button class="custom-share-button" open-type="share" data-channel="video" data-qrcode="inv34+23==">Click Me!</button>
  4. 開發(fā)者在開發(fā)小程序時,可以在圖形界面繪制自定義按鈕,在按鈕的回調(diào)中調(diào)用 ?tt.shareAppMessage(shareParam)? 來直接調(diào)起發(fā)布器


調(diào)用邏輯

如上圖所示,調(diào)用可大體分為主動調(diào)用(C)和被動調(diào)用(A、B、C)兩種模式。小程序只能使用被動調(diào)用,小程序可以使用主動和被動兩種。


主動調(diào)用

開發(fā)者直接通過 ?tt.shareAppMessage(shareParam)? 方法,將 shareParam 傳遞給系統(tǒng)發(fā)布器即可。


被動調(diào)用

無論用戶點擊何種入口,小程序框架均會將 shareOption 帶給 ?[Page|tt].onShareAppMessage(callback)? 方法中注冊的 ?callback? 回調(diào)。開發(fā)者可以在回調(diào)中根據(jù)參數(shù)處理相應邏輯,最后返回 shareParam 即可。如:

Page({
  onShareAppMessage: function (shareOption) {
    switch(shareOption.channel){
      case 'video':
        return {
          extra: {
          	// 注意,只有小程序使用button組件觸發(fā)分享時,會有target屬性
            videoPath : shareOption.target.dataset.path
          }
        };
      case 'qrcode':
        ...
        break;
      default:
        ...
        break;
    }
  },
});

其中,shareOption 的結構如下:

{
  from: '',     // 合法值包括 button 和 menu,分別對應兩種被動分享方式
  target: null, // 當from=button時,target指向<button>對象,當from=menu時,target為null
  channel: '',  // 預設的分享方式(通過button分享時,取值自data-channel)
}

onShareAppMessage 方法返回的對象我們稱之為 shareParam,它的結構如下:

{
  channel: '',
  title: '',
  imageUrl: '',
  path: '',
  extra: {
  	videoTopics: ['話題一', '話題二'], // 只有抖音支持該屬性
    videoPath: ''
  }
}

shareParam 這個對象的屬性分為基礎參數(shù)和擴展參數(shù) extra 兩部分。


基礎參數(shù)說明

所有的分享/發(fā)布內(nèi)容都需要經(jīng)過獨立的審核后才會放出。 開發(fā)者可以在開放平臺后臺預先設置好一些分享默認內(nèi)容,當實際代碼所指定的內(nèi)容審核通過前,會展示該默認內(nèi)容。

屬性說明
channel指定發(fā)布器的調(diào)用方式,默認為 share。具體內(nèi)容見下方「特殊參數(shù)說明」
title想要分享/發(fā)布的內(nèi)容標題。
imageUrl想要分享/發(fā)布的內(nèi)容,當調(diào)用方式支持傳入一張圖片時,可以通過此參數(shù)指定。
query/path分享/發(fā)布的內(nèi)容會自動與小程序綁定,同時在 UI 上提供進入小程序的入口。開發(fā)者如果想為該入口添加參數(shù)可以通過設置 query/path 實現(xiàn)。其中小程序需要傳遞 path 字段,小游戲是 query 字段。


擴展參數(shù) extra 說明

只有當 channel 為 video(即發(fā)布視頻)時可以指定 extra 屬性,extra 可以有==videoTopics==、==withVideo== 和==videoPath==三個字段:

==videoTopics== 類型string[], 可以在分享內(nèi)容中插入指定話題,該字段只有抖音內(nèi)支持
==videoPath== 類型string, 可以指定本地視頻,如果不提供該字段,則調(diào)起攝像頭拍攝
==withVideoId== 類型Boolean, 指定在 success 回調(diào)函數(shù)中返回 videoId, 并可以通過 videoId 調(diào)用接口tt.navigateToVideoView播放


整體可以參考以下表格

功能描述channel支持的 app基礎參數(shù)說明extra 參數(shù)說明
分享面板share今日頭條抖音
發(fā)布圖文內(nèi)容article今日頭條
發(fā)布視頻內(nèi)容video今日頭條不支持 imageUrl,title 參數(shù)可以指定一個本地視頻直接進入編輯頁面 videoPath
發(fā)布視頻內(nèi)容video抖音1. 不支持 imageUrl 參數(shù)
2. title 參數(shù)在發(fā)布過程中對用戶透明,經(jīng)審核后可放出
1. 話題列表 videoTopics
2. 可以指定一個本地視頻直接進入編輯頁面 videoPath
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號