分享到聊天
讓使用者把小程序(或其中某一頁)以卡片分享到聊天,收到的人點開卡片就能直接打開。
宣告權限
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 使用者取消或送出失敗- 容器打開原生的「選擇會話」頁。
- 使用者選了會話才送出;按返回就是取消(回傳
false)。容器不會在沒有使用者確認的情況下送出。 - 送出成功時容器顯示成功提示並回傳
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 起。