Skip to content

分享到聊天 ​

讓使用者把小程序(或其中某一頁)以卡片分享到聊天,收到的人點開卡片就能直接打開。

宣告權限 ​

ts
// miniapp.config.ts
permissions: ['share.toChat'],

沒有宣告時呼叫會以 NOT_ALLOWED 失敗。

呼叫 ​

ts
import { sdk } from '@im/miniapp-sdk';

const shared = await sdk.share.toChat({
  title: '我的點數:4,051',
  desc: '查詢會員點數與明細',
  path: '/history',
});
// shared:true 已送出;false 使用者取消或送出失敗
  1. 容器打開原生的「選擇會話」頁。
  2. 使用者選了會話才送出;按返回就是取消(回傳 false)。容器不會在沒有使用者確認的情況下送出。
  3. 送出成功時容器顯示成功提示並回傳 true;送出失敗時容器顯示錯誤提示並回傳 false(不需要自己再提示)。

卡片長什麼樣子 ​

┌──────────────────────────────┐
│ (圖示) 小程序名稱              │ ← 平台登記的名稱與圖示,不能改
│ 卡片大字(title)              │
│ ┌──────────────────────────┐ │
│ │        封面(圖示)        │ │
│ └──────────────────────────┘ │
│ 小程序                         │
└──────────────────────────────┘
參數用途規則
title卡片大字最多 60 字
desc沒有 title 時當卡片大字最多 120 字
path收到的人點開時的起始頁以 / 開頭、最多 512 字,不能有 ..、\、開頭 //
  • title、desc 都沒給時,大字用小程序的簡介。
  • 卡片頁首永遠是平台登記的小程序名稱與圖示,不能用 title 冒充別的小程序。
  • path 不合法時以 INVALID_PARAMS 失敗。

起始頁 ​

收到的人點開卡片時,容器載入 index.html,path 放在 getLaunch().path(雙執行緒時也在 onLoad(launch) 的 launch.path)。由你的路由處理,見專案結構與設定 → 路由。

  • 帶起始頁開啟時不會接回保活的實例,一律從指定頁開始。
  • 卡片和網址都可能被竄改:起始頁要當成不可信的輸入,找不到對應頁面時回到首頁,需要權限的頁面照常檢查。

限制 ​

  • 同一時間只能開一個選擇會話頁;前一個還沒結束又呼叫會以 RATE_LIMITED 失敗。
  • 不設逾時:使用者想選多久都可以。
  • 只能在小程序顯示中呼叫;保活期間呼叫會失敗。
  • 需要容器 1.1.0;同時只能一個的限制從 1.2.0 起。