Skip to content
On this page

猹引擎

GUI - 弹窗与确认流程

这页解决什么问题

把“高风险操作”做成二次确认,避免玩家误点。

不写代码版做法

  1. 凡是扣货币、销毁道具、重置进度,都加确认弹窗。
  2. 玩家确认后再发动作。
  3. 服务端回执后弹结果窗。

弹窗类型

类型场景
普通提示弹窗活动公告、规则展示
二次确认弹窗购买、销毁、重置
结果弹窗成功或失败提示

二次确认模板

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 || ''
    });
  }
});

客户常见错误

  1. 确认按钮和取消按钮都走了提交动作。
  2. 弹窗关闭后未清理状态,导致重复提交。
  3. 同一个动作弹了两次确认框。