当前位置:首页 > 编程技术 > 正文内容

uniapp 中的交互反馈 API【提示框】

yc8882年前 (2022-12-08)编程技术372

uniapp 中的交互反馈 API【提示框】

1. 前言


uniapp 交互反馈文档: https://uniapp.dcloud.net.cn/api/ui/prompt.html

消息提示 是项目中不可缺少一个功能,比如: 表单提交成功后的提示,操作成功后的提示,此外,询问框和加载动画也是经常使用。uniapp 提供了该 API,详细用法参考官方文档 API - 界面 - 交互反馈 章节

2. toast 消息提示


使用 uni.showToast 显示消息提示框:

  1. uni.showToast(object)

object 常用参数说明:

参数 类型 必填 说明
title string 提示的内容,可显示的长度和 icon 取值有关
icon string 提示框的图标,可取值详见下方说明
mask boolean 是否防止触摸穿透,默认 false。一般会设置为 true
duration number 提示框的显示时间,单位毫秒,默认 1500

最简单的用法:

  1. uni.showToast({ title: '操作成功' })

常用的参数选项:

  1. uni.showToast({
  2. title: '提交成功',
  3. mask: true,
  4. icon: 'success',
  5. duration: 2000
  6. })

消息提示在项目中需要大量使用,并且有的地方还需要提示后进行页面跳转,那么我们可以进行封装:

下面只是简单的封装,仅提供思路,项目中需要封装的更加完善

  1. /**
  2. * 消息提示,支持页面跳转
  3. */
  4. function toast(options, navigate) {
  5. let { icon, mask, duration, title } = options
  6. icon = icon || "none"
  7. mask = mask || true
  8. duration = duration || 1500
  9. title = typeof options === "string" ? options : title
  10. // 消息提示
  11. uni.showToast({ icon, mask, duration, title })
  12. // 页面跳转
  13. const dataType = typeof navigate
  14. if (["string", "object"].includes(dataType)) {
  15. setTimeout(() => {
  16. switch (dataType) {
  17. case "string":
  18. uni.navigateTo({ url: navigate })
  19. break
  20. case "function":
  21. navigate()
  22. break
  23. }
  24. }, duration)
  25. }
  26. }

然后就可以更加方便的使用消息提示框:

  1. toast('操作成功')
  2. toast('操作成功', '/pages/login/login')
  3. toast('操作成功', () => {
  4. // 消息提示消失后自动执行该函数
  5. })

3. loading 提示框


使用 uni.showLoading(object) 提示框,可以显示一个加载动画,一般用于请求时间比较久的操作,比如: 文件上传

object 常用参数说明:

参数 类型 必填 说明
title string 提示的内容
mask boolean 是否防止触摸穿透,默认 false。一般会设置为 true
  1. uni.showLoading({ title: '上传中' })
  2. uni.showLoading({ title: '上传中', mask: true })

需要注意的是,loading 提示框需要主动调用 uni.hideLoading() 才能关闭提示框

  1. uni.showLoading({ title: '上传中', mask: true })
  2. setTimeout(() => {
  3. uni.hideLoading()
  4. }, 2000);

loading 提示框封装示例:

  1. /**
  2. * 消息提示,支持页面跳转
  3. */
  4. toast(options, navigate) {
  5. // ...
  6. },
  7. /**
  8. * 显示加载动画
  9. */
  10. loading(options) {
  11. let { title, mask = true } = options
  12. title = typeof options === "string" ? options : title
  13. uni.showLoading({ mask, title })
  14. },
  15. /**
  16. * 隐藏加载动画,支持页面跳转
  17. */
  18. hideLoading(options, navigate) {
  19. uni.hideLoading()
  20. this.toast(options, navigate)
  21. }

4. modal 模态弹窗


uni.showModal(object) 模态弹窗

可以只有一个确定按钮,也可以同时有确认和取消按钮,类似于一个 API 中整合了 js 中的 alert、confirm

  1. uni.showModal({
  2. title: '确认删除吗?', // 标题
  3. content: '永久删除不可恢复', // 内容(灰色字体)
  4. showCancel: true, // 显示取消按钮
  5. cancelText: '取消', // 取消按钮文字
  6. cancelColor: '#000000', // 取消按钮颜色
  7. confirmText: '确定', // 确定按钮文字
  8. confirmColor: '#007aff', // 确定按钮颜色
  9. editable: false, // 是否显示输入框
  10. placeholderText: '请输入' ,// 显示输入框时的提示文本
  11. success: ({ confirm }) => {
  12. if (confirm) {
  13. console.log('用户点击确定');
  14. } else {
  15. console.log('用户点击取消');
  16. }
  17. }
  18. })

一个按钮的模态弹窗,类似 js 的 alert 弹窗

  1. uni.showModal({
  2. title: '证件已上传,后台审核中 ~',
  3. showCancel: false,
  4. confirmText: "我知道了",
  5. success: ({ confirm }) => {
  6. console.log(confirm);
  7. if (confirm) {
  8. console.log('用户点击确定');
  9. }
  10. }
  11. })

两个按钮的模态弹窗,类似 js 的 confirm 弹窗

  1. uni.showModal({
  2. title: '确认删除吗?',
  3. success: ({ confirm }) => {
  4. console.log(confirm);
  5. if (confirm) {
  6. console.log('用户点击确定');
  7. } else {
  8. console.log('用户点击取消');
  9. }
  10. }
  11. })

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10192.html

标签: uniapp
分享给朋友:

“uniapp 中的交互反馈 API【提示框】” 的相关文章

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】Java从resources读取文件内容的方法有哪些

【说站】Java从resources读取文件内容的方法有哪些

本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构├── main│ ├── java│ │ └── ...