原生小程序Toast提示一闪就没了?
这个是我一个朋友遇到的问题,用惯了框架,像uniapp,taro这种框架后再去写原生小程序多少就有点煎熬了,造成这个在真机模拟上一闪的问题,我看网上有挺多的,在这里说下我的理解吧
wx.showLoading() // showLoading 和 showToast使用的同一个弹框,我觉得这是造成闪烁的根本原因
// 然后再去调用wx.showToast
wx.request({
url: '/test',
success: (res) => {
wx.hideLoading() // 受到 wx.hideLoading() 影响,toast 框闪烁一下就消失
// 走接口对应的判断逻辑
wx.showToast({
title: '提示的错误术语',
icon: "none",
}) // 在这里进行提示的时候会造成闪烁一下,原因可能是
}
})
// 将这个showToast加一个setTimeout 加到事件队列尾部执行
wx.showLoading()
wx.request({
url: '/test',
success: (res) => {
wx.hideLoading()
let timer = setTimeout(() => {
wx.showToast({
title: '提示的错误术语',
icon: "none",
success: (res) => { setTimeout(() => { wx.hideToast(); }, 2000) }
}, 200)
})
}
})
关于 canvas在原声小程序中遮挡的问题
小程序的canvas层级太高以至于写的html元素没法盖过canvas,就出现了遮挡问题
// 假如说需要下边的确认书这块不允许遮挡,可以用到小程序提供的cover-image或者cover-`view来进行重写这一块`
<cover-view>
<cover-view>重写知情书这块内容</cover-view>
<cover-view>
这样就html元素的优先级就盖过了canvas了