uniapp 如何检查网络设置

在uniapp中如何检查设备的网络连接状态?比如判断当前是否有网络连接,是WiFi还是移动数据,以及网络强度等信息。有没有现成的API可以直接调用?如果需要监听网络状态变化又该怎么实现?希望提供一个完整的示例代码。

2 回复

在uniapp中,可以通过uni.getNetworkType()获取网络类型,或使用uni.onNetworkStatusChange()监听网络变化。


在 UniApp 中,可以通过以下方法检查网络设置:

1. 检测网络连接状态

使用 uni.getNetworkType 获取当前网络类型(如 Wi-Fi、蜂窝网络等):

uni.getNetworkType({
  success: (res) => {
    console.log('网络类型:', res.networkType); // 如 "wifi"、"none"
    if (res.networkType === 'none') {
      uni.showToast({ title: '网络未连接', icon: 'none' });
    }
  }
});

2. 监听网络变化

通过 uni.onNetworkStatusChange 实时监听网络状态变化:

uni.onNetworkStatusChange((res) => {
  console.log('是否连接:', res.isConnected);
  console.log('网络类型:', res.networkType);
});

3. 检查网络可达性

尝试发起轻量请求(如访问公共 API)验证网络是否可用:

uni.request({
  url: 'https://www.example.com/test',
  method: 'HEAD',
  success: () => console.log('网络正常'),
  fail: () => console.log('网络请求失败')
});

注意事项:

  • 部分功能在部分平台受限(如小程序需声明网络权限)。
  • 可结合 uni.offNetworkStatusChange 取消监听。

通过上述方法,可有效检测和响应 UniApp 中的网络设置状态。

回到顶部