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

检查网络是否连接

注意:由于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)
	}
}
这样通过变量控制页面元素实现弹窗提示了~

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

这个错误是由于无法连接到本地主机的10248端口导致的。这个端口通常是kubelet进程监听的端口,用于健康检查。出现这个错误可能是由于kubelet进程没有正确启动或者配置错误导致的。 解决这个问题的方法是检查kubelet进程的状态和配置。你可以按照以下步骤进行操作: 1. 检查kubelet进程是否正在运行。你可以使用以下命令检查kubelet进程的状态: ```shell systemctl status kubelet ``` 如果kubelet进程没有运行,你可以使用以下命令启动它: ```shell systemctl start kubelet ``` 2. 检查kubelet的配置文件。你可以使用以下命令查看kubelet的配置文件路径: ```shell kubelet --kubeconfig /etc/kubernetes/kubelet.conf --config /var/lib/kubelet/config.yaml --bootstrap-kubeconfig /etc/kubernetes/bootstrap-kubelet.conf config view ``` 确保配置文件中的端口号和地址正确,并且与你的环境相匹配。 3. 检查网络连接。你可以使用以下命令检查是否可以连接到localhost10248端口: ```shell curl -sSL http://localhost:10248/healthz ``` 如果无法连接,请确保端口没有被防火墙或其他网络配置阻止。 4. 检查docker的配置。有时候,kubelet进程依赖于docker进程。你可以按照以下步骤检查docker的配置: - 创建/etc/docker目录: ```shell sudo mkdir /etc/docker ``` - 编辑/etc/docker/daemon.json文件,并添加以下内容: ```json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "registry-mirrors": ["https://tdhp06eh.mirror.aliyuncs.com"] } ``` - 重启docker进程: ```shell systemctl restart docker ``` 请注意,以上步骤是一种常见的解决方法,但具体解决方法可能因环境而异。如果以上步骤无法解决问题,请提供更多的错误信息和环境配置,以便我们能够更好地帮助你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值