背景:进行断网环境页面开发,无网络时跳转断网页面,检测到网络返回首页。
使用此方法,在app生命周期中调用,可以全局检测网络,但是有个问题。
uni.onNetworkStatusChange(res=>{
console.log('是否有网络',res.isConnected)
if(!res.isConnected){
uni.reLaunch({ url: '/pages/error/index' })
}else{
uni.reLaunch({ url: '/pages/home/index' })
}
console.log('网络类型',res.networkType)
})
如果一开始断网进入app,则无法触发跳转断网页面。此时使用以下方法:
uni.getNetworkType({
success: function (res) {
if(res.networkType == 'none'){
uni.reLaunch({ url: '/pages/error/index' })
}else{
uni.reLaunch({ url: '/pages/home/index' })
}
}
});
但在代码测试过程中,每当调用相机都会闪退,原来是我把上述代码写到了app的生命周期,uni.chooseImage选择完毕后会执行app的生命周期,检测到有网络便回到了首页。
正确处理:
在app onLaunch 中调用即可。