uniapp无网络提示
在项目中,网络不好或者断网的时候,可能中间会出现个黑点,影响美观,且没有提示,也影响用户的使用。所以我们得获取一下当前的网络状态,在没有网络的时候给与用户提示会更好一些。
·
在项目中,网络不好或者断网的时候,可能中间会出现个黑点 ,影响美观,且没有提示,也影响用户的使用。所以我们得获取一下当前的网络状态,在没有网络的时候给与用户提示会更好一些。
uniapp官网也提供了对应的方法:uni.getNetworkType(OBJECT)
这里将其封装为公共的方法,然后在 App.vue 中的onShow方法中调用 ,这样在app的每个页面都可以获取到网络状态
function isHaveNetwork() {
uni.getNetworkType({
success: res => {
if (res.networkType == 'none') {
uni.showModal({
title: '网络不给力~',
content: '是否重新连接',
showCancel: true,
confirmText: '是',
cancelText: '不了',
success: res => {
if (res.confirm) {
setTimeout(() => {
isHaveNetwork() //再次判断
}, 200)
}
}
});
}
},
fail: err => console.error('调用失败'),
complete: () => { }
})
}
其中 networkType 可能获取到的值:
networkType 有效值
值 | 说明 | 平台差异说明 |
---|---|---|
wifi | wifi 网络 | |
2g | 2g 网络 | |
3g | 3g 网络 | |
4g | 4g 网络 | |
5g | 5g 网络 | |
ethernet | 有线网络 | App |
unknown | Android 下不常见的网络类型 | |
none | 无网络 |
其他细节请参考官网,上面已贴。
然后App.vue调用上面方法
onShow: function() {
console.log('App Show')
this.$utils.isHaveNetwork() // 获取当前网络状态
}
当然这个不是监听网络状态,而是写在了全局App.vue中的onShow方法中,也就是刚显示进入页面的时候会去获取当前的网络状态。如果想要时刻监听的话,也有对应的方法:uni.onNetworkStatusChange(CALLBACK),然后通过uni.offNetworkStatusChange(CALLBACK)取消监听,具体细节可以去官网看下咯~
更多推荐
已为社区贡献36条内容
所有评论(0)