# 交互

## 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/miniapp-sdk/lifecycle.md): 在标签页刷新前询问
- [概览](https://docs.micromeet.ai/zh/miniapp-sdk/overview.md): Mini App SDK 的所有模块
