微信小程序校验网络连接是否正常,无网络时给出提示

检查网络是否连接

注意:由于getNetworkType是异步的,正常逻辑是判断出来网络类型后在相应的网络下做不同的操作,但业务逻辑复杂代码较多时,会造成代码结构混乱,不易阅读,所以简单用promise封装一下,return出网络状态。
本案例就是点击按钮时判断网络是否连接,无网络给出提示即可。先判断网络状态:
			getNetwork () {
				let  self = this;
			    return new Promise((resolve, reject) => {
			      uni.getNetworkType({
			        success (res) {
			          const networkType = res.networkType;
			          if (networkType === 'none') {
						console.log('无网络,返回false')
			            reject(false)
			          } else {
						console.log('有网络,返回true')
			            resolve(true)
			          }
			        }
			      })
			    })
			},

问题来了,如何给出提示呢?

提示:无网络状态下,任何互联网资源都无法访问,包括封装的组件或方法,都是不能访问或执行的。
个人认为原因是:本页面以外的所有脚本代码(组件,公共方法,第三方组件等)都属于外部资源。不知道准确不准确,(还有一点疑惑,无网络为什么还能调用getNetworkType???)有懂的大佬可以留言指点指点,多谢~
所以要想一个不用调用外部资源的方法,实现弹窗提示。其实很简单:在本页面内写一个弹窗,通过一个变量控制显示隐藏就行了 。简单代码如下:

<view @click="submit">
	按钮点击
</view>

<view v-if="isConnect">
	暂无网络,请检查网络连接
</view>

async submit(){
	let res = await this.getNetwork();
	if(!res){
		this.isConnect = true;
		setTimeout(()=>{
			this.isConnect = false;
		},2000)
	}
}
这样通过变量控制页面元素实现弹窗提示了~

无网络时,不能引用到页面以外的资源有没有大佬解释一下啊 ~感谢感谢

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值