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

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

yc8881年前 (2022-12-08)编程技术272

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【提示框】” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

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

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

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

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...

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

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

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

【说站】使用systemctl配置dnspod-shell实现ddns

【说站】使用systemctl配置dnspod-shell实现ddns

这个是毛子路由器上用的脚本,由于碳云的nat服务器公网IP不断的变,因此只好通过ddns来稳定连接nat服务器了。顺便水一篇文章,大家新年快乐。使用前需要将域名添加到 DNSPod 中,并添加一条A记...

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。效果展示获取到的数据咱们保存到表格可视化地图颜色是...