# 互動

## MAESTROSDK.confirm(request)

顯示一個附在 Cowork 視窗上的原生確認對話框，並等待使用者回答。

### 參數

| 名稱 | 類型 | 必填 | 說明 |
|---|---|---|---|
| `request.title` | `string` | 是 | 對話框標題 |
| `request.message` | `string` | 是 | 要問的問題 |
| `request.confirmLabel` | `string` | 否 | 確認按鈕的文字；預設為 Cowork 自己的「確定」 |
| `request.cancelLabel` | `string` | 否 | 取消按鈕的文字；預設為 Cowork 自己的「取消」 |

### 回傳值

`Promise<boolean>`：使用者確認時為 `true`，否則為 `false`。

### 回傳 `false` 的情況

| 情況 | 原因 |
|---|---|
| 使用者取消或關閉對話框 | 沒有回答就是否 |
| 這個分頁不是目前的分頁 | 只有在前面的分頁可以發問，背景分頁不能打斷使用者。在使用者發起的重新整理所觸發的 `beforeRefresh` 處理函式裡，分頁即使不在前面也可以發問 |
| `title` 或 `message` 缺少或不是字串 | 請求無效 |
| 同一個視窗裡已經開著另一個確認對話框 | 一次只能有一個對話框 |
| 頁面沒有 Cowork 分頁身分，或 Cowork 無法顯示對話框 | 無法使用 |

### 示例

```js
const ok = await MAESTROSDK.confirm({
  title: 'Delete draft',
  message: 'Delete this draft? This cannot be undone.',
  confirmLabel: 'Delete',
  cancelLabel: 'Keep'
});
if (ok) deleteDraft();
```

## 相關

- [生命週期](https://docs.micromeet.ai/zh-tw/miniapp-sdk/lifecycle.md): 在分頁重新整理前詢問
- [概覽](https://docs.micromeet.ai/zh-tw/miniapp-sdk/overview.md): Mini App SDK 的所有模組
