微信小程序中 wx.hideLoading() 后调用 wx.showToast()的问题
问题:在IOS中会正常提示“没权限”,在安卓和鸿蒙中无法提示“没权限”。
代码如下:
wx.hideLoading();
if(res.errMsg =="request:ok")
{
wx.showToast({ title: "没权限", icon: "none",duration:2000 });
}
根本原因是:安卓上 wx.hideLoading() 和 wx.showToast() 调用间隔太短,hideLoading 的关闭动画还没结束,toast 就被系统忽略了。iOS 对此容忍度更高,所以正常显示。
修复方案:
用 hideLoading 的 complete 回调,在 showToast 前加延迟(最稳)。
wx.hideLoading({
complete: () => {
if (res.errMsg === "request:ok") {
setTimeout(() => {
wx.showToast({
title: "没权限",
icon: "none",
duration: 2000
});
}, 150);
}
}
});
浙公网安备 33010602011771号