猹引擎
GUI - 弹窗与确认流程
这页解决什么问题
把“高风险操作”做成二次确认,避免玩家误点。
不写代码版做法
- 凡是扣货币、销毁道具、重置进度,都加确认弹窗。
- 玩家确认后再发动作。
- 服务端回执后弹结果窗。
弹窗类型
| 类型 | 场景 |
|---|---|
| 普通提示弹窗 | 活动公告、规则展示 |
| 二次确认弹窗 | 购买、销毁、重置 |
| 结果弹窗 | 成功或失败提示 |
二次确认模板
js
function confirmBuy(itemId) {
openDialog({
title: '确认购买',
content: '是否购买该道具?',
onConfirm: async () => {
await ChaEngine.sendToServer('ui.action', {
action: 'confirm_buy',
body: { itemId }
});
}
});
}结果弹窗模板
js
ChaEngine.onServerData((packet) => {
if (packet.channel !== 'ui.notice') {
return;
}
const data = JSON.parse(packet.data || '{}');
if (data.action === 'confirm_buy') {
openDialog({
title: data.code === 0 ? '购买成功' : '购买失败',
content: data.message || ''
});
}
});客户常见错误
- 确认按钮和取消按钮都走了提交动作。
- 弹窗关闭后未清理状态,导致重复提交。
- 同一个动作弹了两次确认框。
猹件开发组