uni-app 之 uni.showModal

uni.showModal 是 uni-app 中用于显示模态弹窗的 API,通常用于确认操作、提示信息或让用户做出选择。

基本用法

javascript 复制代码
uni.showModal({
  title: "提示",
  content: "这是一个模态弹窗",
  success: function (res) {
    if (res.confirm) {
      console.log("用户点击确定");
    } else if (res.cancel) {
      console.log("用户点击取消");
    }
  },
});

参数说明

参数 类型 默认值 必填 说明
title String - 提示的标题
content String - 提示的内容
showCancel Boolean true 是否显示取消按钮
cancelText String '取消' 取消按钮的文字
cancelColor String '#000000' 取消按钮的文字颜色
confirmText String '确定' 确定按钮的文字
confirmColor String '#007aff' 确定按钮的文字颜色
success Function - 接口调用成功的回调函数
fail Function - 接口调用失败的回调函数
complete Function - 接口调用结束的回调函数

success 返回参数说明

success 回调函数会收到一个对象参数,包含以下属性:

参数名 类型 说明
confirm Boolean 为 true 时,表示用户点击了确定按钮
cancel Boolean 为 true 时,表示用户点击了取消按钮

示例代码

基础用法
javascript 复制代码
uni.showModal({
  title: "提示",
  content: "确定要删除该项吗?",
  success: function (res) {
    if (res.confirm) {
      console.log("用户点击确定");
      // 执行删除操作
    } else if (res.cancel) {
      console.log("用户点击取消");
    }
  },
});
自定义按钮文字
javascript 复制代码
uni.showModal({
  title: "操作确认",
  content: "是否确认提交申请?",
  confirmText: "确认提交",
  cancelText: "暂不提交",
  success: function (res) {
    if (res.confirm) {
      // 提交申请逻辑
    } else if (res.cancel) {
      // 取消操作
    }
  },
});
仅显示确定按钮
javascript 复制代码
uni.showModal({
  title: "系统提示",
  content: "操作成功!",
  showCancel: false,
  confirmText: "知道了",
});
自定义按钮颜色
javascript 复制代码
uni.showModal({
  title: "重要提醒",
  content: "此操作不可撤销,请谨慎操作!",
  confirmColor: "#ff0000",
  cancelColor: "#999999",
  success: function (res) {
    if (res.confirm) {
      // 用户确认操作
    }
  },
});

注意事项

  1. 弹窗内容不宜过长,避免影响用户体验
  2. 在 iOS 平台,如果 showCancel 设置为 false,则不会显示取消按钮
  3. confirmColorcancelColor 颜色值需使用十六进制格式
  4. 模态弹窗会中断用户操作流程,应谨慎使用
  5. 在微信小程序中,最多只能同时存在一个模态弹窗

完整示例

javascript 复制代码
// 删除确认对话框
function deleteItem(itemId) {
  uni.showModal({
    title: "删除确认",
    content: "确定要删除这条记录吗?此操作不可恢复!",
    confirmColor: "#ff3333",
    confirmText: "删除",
    cancelText: "取消",
    success: function (res) {
      if (res.confirm) {
        // 调用删除接口
        deleteApi(itemId)
          .then(() => {
            uni.showToast({
              title: "删除成功",
              icon: "success",
            });
            // 刷新列表
            refreshList();
          })
          .catch(() => {
            uni.showToast({
              title: "删除失败",
              icon: "none",
            });
          });
      } else if (res.cancel) {
        console.log("用户取消删除");
      }
    },
  });
}
相关推荐
王码码20359 分钟前
Flutter for OpenHarmony:Flutter 三方库 algoliasearch 毫秒级云端搜索体验(云原生搜索引擎)
android·前端·git·flutter·搜索引擎·云原生·harmonyos
发现一只大呆瓜13 分钟前
深入浅出 AST:解密 Vite、Babel编译的底层“黑盒”
前端·面试·vite
天天鸭31 分钟前
前端仔写了个 AI Agent,才发现大模型只干了 10% 的活
前端·python·ai编程
发现一只大呆瓜1 小时前
前端模块化:CommonJS、AMD、ES Module三大规范全解析
前端·面试·vite
IT_陈寒1 小时前
一文搞懂JavaScript的核心概念
前端·人工智能·后端
IT_陈寒1 小时前
Java开发者必看!5个提升开发效率的隐藏技巧,你用过几个?
前端·人工智能·后端
前端Hardy1 小时前
Wails v3 正式发布:用 Go 写桌面应用,体积仅 12MB,性能飙升 40%!
前端·javascript·go
Highcharts.js1 小时前
Highcharts React v4 迁移指南(下):分步代码示例与常见问题解决
javascript·react.js·typescript·react·highcharts·代码示例·v4迁移
Laurence1 小时前
Qt 前后端通信(QWebChannel Js / C++ 互操作):原理、示例、步骤解说
前端·javascript·c++·后端·交互·qwebchannel·互操作
Pu_Nine_91 小时前
JavaScript 字符串与数组核心方法详解
前端·javascript·ecmascript