Skip to content

作者

novlan1

2025.11.30

PixUI 中全局失败提示

1. 介绍

得益于 Press Pix 中实现的动态组件方案,可以在网络框架中实现全局失败提示。

2. 使用方式

初始化网络框架中,添加 useErrorToast 参数。

ts
import { initNetworkManager } from 'pmd-vue/lib/network/application/pixui/index';

// 网络请求初始化
initNetworkManager({
  useErrorToast: true,
});

⚠️ 注意事项:

  1. useErrorToast 默认为 false, 这是为了兼容之前项目,避免破坏性更新。也就是业务想实现全局失败提示,需要手动开启
  2. 当前内置的 Toast 组件 UI 样式为王者游戏风格,这是因为它的项目最多。其他游戏要使用,有两种方式:
    1. 全局覆盖 Toast 组件样式
    2. 初始化网络框架时,传入 dataErrorHandler 参数,自定义失败处理逻辑

自定义失败处理逻辑这种方式非常灵活,除了可以自定义 Toast 组件外,还可以处理其他逻辑,比如内网活动可校验特殊 RetCode,展示特定提示等。

示例代码如下:

ts
import { initNetworkManager } from 'pmd-vue/lib/network/application/pixui/index';
import { ErrorCode, RetCode } from 'pmd-vue/lib/network/common-logic/index';
import { showToast } from 'press-pix/pmg-toast/command';

// 网络请求初始化
initNetworkManager({
  useErrorToast: true,
  dataErrorHandler({ data, extra }) {
    if (extra.showMsgToast
          && data
          && +data.r !== RetCode.Success
          && +data.r !== RetCode.Empty
          && +data.r !== ErrorCode.NeedLogin) {
      if (data.msg) {
        showToast(data.msg);
      } else {
        showToast(`${$t('连接失败,请重试!')}(${data.r})`);
      }
    }
    return true;
  },
});