生命周期
MAESTROSDK.beforeRefresh(handler)
注册一个函数,在 Cowork 刷新这个 Mini App 的标签页之前运行,比如用户按了刷新按钮时。用它保住未保存的内容:询问、保存,或取消刷新。
参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
handler | () => boolean | void | Promise<boolean | void> | 是 | 每次刷新运行一次。返回 false(或 resolve 为 false 的 promise)会取消刷新。返回其他值则继续刷新 |
返回值
() => void:调用它可移除这个处理函数。
行为
- 处理函数按添加顺序依次运行,每个都会被 await。
- 第一个返回
false的处理函数会取消刷新。处理函数抛出异常或 reject 也会取消刷新。 - 没有处理函数时,标签页立即刷新。
- 同一时间只处理一次刷新;正在处理时收到的第二次刷新请求会被忽略。
handler不是函数时会被忽略,返回的函数什么也不做。
示例
js
const off = MAESTROSDK.beforeRefresh(async () => {
if (!form.dirty) return;
return await MAESTROSDK.confirm({ title: 'Refresh?', message: 'Unsaved changes will be lost.' });
});
// later
off();