refactor: 替换自定义 toast 为 uni.showToast 并添加微信更新管理器

移除自定义 toast 工具,统一使用 uni.showToast 实现提示功能
添加微信小程序更新管理器实现版本更新检测和应用
This commit is contained in:
feige996
2025-08-22 14:56:18 +08:00
parent bb52c8b80c
commit 3143635764
4 changed files with 41 additions and 82 deletions

View File

@@ -1,77 +0,0 @@
/**
* toast 弹窗组件
* 支持 success/error/warning/info 四种状态
* 可配置 duration, position 等参数
*/
type ToastType = 'success' | 'error' | 'warning' | 'info'
interface ToastOptions {
type?: ToastType
duration?: number
position?: 'top' | 'middle' | 'bottom'
icon?: 'success' | 'error' | 'none' | 'loading' | 'fail' | 'exception'
message: string
/**
* 是否显示透明蒙层,防止触摸穿透
* @default true
*/
mask?: boolean
}
/**
* 显示 toast
*/
export function showToast(message: string): void
export function showToast(options: ToastOptions): void
export function showToast(options: ToastOptions | string): void {
const defaultOptions: ToastOptions = {
type: 'info',
duration: 2000,
position: 'middle',
message: '',
mask: true,
}
const mergedOptions
= typeof options === 'string'
? { ...defaultOptions, message: options }
: { ...defaultOptions, ...options }
// 映射position到uniapp支持的格式
const positionMap: Record<ToastOptions['position'], 'top' | 'bottom' | 'center'> = {
top: 'top',
middle: 'center',
bottom: 'bottom',
}
// 映射图标类型
const iconMap: Record<
ToastType,
'success' | 'error' | 'none' | 'loading' | 'fail' | 'exception'
> = {
success: 'success',
error: 'error',
warning: 'fail',
info: 'none',
}
// 调用uni.showToast显示提示
uni.showToast({
title: mergedOptions.message,
duration: mergedOptions.duration,
position: positionMap[mergedOptions.position],
icon: mergedOptions.icon || iconMap[mergedOptions.type],
mask: mergedOptions.mask,
})
}
type _ToastOptions = Omit<ToastOptions, 'type' | 'message'>
export const toast = {
success: (message: string, options?: _ToastOptions) =>
showToast({ ...options, type: 'success', message }),
error: (message: string, options?: _ToastOptions) =>
showToast({ ...options, type: 'error', message }),
warning: (message: string, options?: _ToastOptions) =>
showToast({ ...options, type: 'warning', message }),
info: (message: string, options?: _ToastOptions) =>
showToast({ ...options, type: 'info', message }),
}

View File

@@ -0,0 +1,29 @@
export default () => {
if (!wx.canIUse('getUpdateManager')) {
return
}
const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate((res) => {
// 请求完新版本信息的回调
console.log('版本信息', res)
})
updateManager.onUpdateReady(() => {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
},
})
})
updateManager.onUpdateFailed(() => {
// 新版本下载失败
})
}