生命週期
MAESTROSDK.beforeRefresh(handler)
註冊一個函式,在 Cowork 重新整理這個 Mini App 的分頁之前執行,例如使用者按下重新整理按鈕時。用它保住尚未儲存的工作:詢問、儲存,或取消這次重新整理。
參數
| 名稱 | 類型 | 必填 | 說明 |
|---|---|---|---|
handler | () => boolean | void | Promise<boolean | void> | 是 | 每次重新整理執行一次。回傳 false(或解析為 false 的 promise)會取消重新整理,回傳其他值則讓它繼續 |
回傳值
() => void:呼叫它即可移除這個處理函式。
行為
- 處理函式依加入的順序逐一執行,每一個都會被等待完成。
- 第一個回傳
false的處理函式會取消重新整理。處理函式拋出錯誤或被拒絕,也會取消重新整理。 - 沒有處理函式時,分頁會立即重新整理。
- 同一時間只處理一次重新整理;處理中又收到的第二個請求會被忽略。
- 不是函式的
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();