前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >uniapp 中的交互反馈 API【提示框】

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

作者头像
很酷的站长
发布于 2022-12-16 13:15:46
发布于 2022-12-16 13:15:46
2.6K00
代码可运行
举报
运行总次数:0
代码可运行
1. 前言

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

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

2. toast 消息提示

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showToast(object)

object 常用参数说明:

参数

类型

必填

说明

title

string

提示的内容,可显示的长度和 icon 取值有关

icon

string

提示框的图标,可取值详见下方说明

mask

boolean

是否防止触摸穿透,默认 false。一般会设置为 true

duration

number

提示框的显示时间,单位毫秒,默认 1500

最简单的用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showToast({ title: '操作成功' })

常用的参数选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showToast({
title: '提交成功',
mask: true,
icon: 'success',
duration: 2000
})

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
* 消息提示,支持页面跳转
*/
function toast(options, navigate) {
let { icon, mask, duration, title } = options
icon = icon || "none"
mask = mask || true
duration = duration || 1500
title = typeof options === "string" ? options : title
// 消息提示
uni.showToast({ icon, mask, duration, title })
// 页面跳转
const dataType = typeof navigate
if (["string", "object"].includes(dataType)) {
setTimeout(() => {
switch (dataType) {
case "string":
uni.navigateTo({ url: navigate })
break
case "function":
navigate()
break
}
}, duration)
}
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
toast('操作成功')
toast('操作成功', '/pages/login/login')
toast('操作成功', () => {
// 消息提示消失后自动执行该函数
})
3. loading 提示框

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

object 常用参数说明:

站长源码网

参数

类型

必填

说明

title

string

提示的内容

mask

boolean

是否防止触摸穿透,默认 false。一般会设置为 true

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showLoading({ title: '上传中' })
uni.showLoading({ title: '上传中', mask: true })

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showLoading({ title: '上传中', mask: true })
setTimeout(() => {
uni.hideLoading()
}, 2000);

loading 提示框封装示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
* 消息提示,支持页面跳转
*/
toast(options, navigate) {
// ...
},
/**
* 显示加载动画
*/
loading(options) {
let { title, mask = true } = options
title = typeof options === "string" ? options : title
uni.showLoading({ mask, title })
},
/**
* 隐藏加载动画,支持页面跳转
*/
hideLoading(options, navigate) {
uni.hideLoading()
this.toast(options, navigate)
}
4. modal 模态弹窗

uni.showModal(object) 模态弹窗

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showModal({
title: '确认删除吗?', // 标题
content: '永久删除不可恢复', // 内容(灰色字体)
showCancel: true, // 显示取消按钮
cancelText: '取消', // 取消按钮文字
cancelColor: '#000000', // 取消按钮颜色
confirmText: '确定', // 确定按钮文字
confirmColor: '#007aff', // 确定按钮颜色
editable: false, // 是否显示输入框
placeholderText: '请输入' ,// 显示输入框时的提示文本
success: ({ confirm }) => {
if (confirm) {
console.log('用户点击确定');
} else {
console.log('用户点击取消');
}
}
})

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showModal({
title: '证件已上传,后台审核中 ~',
showCancel: false,
confirmText: "我知道了",
success: ({ confirm }) => {
console.log(confirm);
if (confirm) {
console.log('用户点击确定');
}
}
})

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.showModal({
title: '确认删除吗?',
success: ({ confirm }) => {
console.log(confirm);
if (confirm) {
console.log('用户点击确定');
} else {
console.log('用户点击取消');
}
}
})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. toast 消息提示
  • 3. loading 提示框
  • 4. modal 模态弹窗
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档