Skip to content

ui 介面 ​

畫面層、邏輯層都可用。小程序必須顯示在畫面上:保活期間:ui.toast、ui.dialog、ui.actionSheet、share.toChat 會以 INTERNAL 失敗;ui.setTitle、ui.loading、navigate.close 不會報錯,但沒有效果。保活期間設定的標題不會被記下來。

sdk.ui.toast() ​

ts
sdk.ui.toast(options: { text: string; icon?: 'success' | 'error' | 'none' }): Promise<void>

App 原生的輕提示。

參數規則
text必填,最多 200 字
iconsuccess、error、none(預設)

sdk.ui.dialog() ​

ts
sdk.ui.dialog(options: DialogOptions): Promise<{ confirm: boolean }>

interface DialogOptions {
  title?: string;        // 最多 100 字
  content: string;       // 必填,最多 2000 字
  confirmText?: string;  // 最多 20 字,預設為 App 語言的「確定」
  cancelText?: string;   // 最多 20 字,預設為 App 語言的「取消」
  showCancel?: boolean;  // 預設 true;false 時只有確認鍵(純告知)
  destructive?: boolean; // true 時確認鍵為紅色(刪除等破壞性操作)
}

iOS 為 Cupertino 樣式、Android 為 Material 樣式。按確認回傳 { confirm: true },按取消回傳 { confirm: false }。沒有 title 時,content 以標題樣式顯示。

ts
const { confirm } = await sdk.ui.dialog({
  title: '刪除這筆紀錄?',
  content: '刪除後無法復原。',
  confirmText: '刪除',
  destructive: true,
});

sdk.ui.actionSheet() ​

ts
sdk.ui.actionSheet(options: { items: string[] }): Promise<{ index: number }>

從底部升起的選單。回傳被選項目的索引,取消為 -1。

參數規則
items1–12 個非空字串,每個最多 40 字

同時只能一個 ​

dialog 與 actionSheet 同一時間只能開一個;前一個還沒關閉又呼叫,會以 RATE_LIMITED 失敗。這兩個呼叫不設逾時。

sdk.ui.setTitle() ​

ts
sdk.ui.setTitle(title: string): Promise<void>

改導覽列標題(預設為小程序名稱)。最多 40 字。保活接回時會保留;「重新进入小程序」後恢復預設。

sdk.ui.loading() ​

ts
sdk.ui.loading(options: { show: boolean; text?: string }): Promise<void>

在導覽列下方顯示(show: true)或隱藏(show: false)不確定進度條。

  • text 目前不會顯示。
  • 記得在完成或失敗時呼叫 show: false。