iPhone11上获取不到网络类型在uni-app中的解决方案

iPhone11上获取不到网络类型在uni-app中的解决方案

信息类别 详细信息
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 Windows 11
HBuilderX 正式版
HBuilderX版本 3.8.12
手机系统 iOS
手机版本 iOS 16
手机厂商 苹果
手机型号 iPhone 11
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX
App下载地址 https://sj.qq.com/appdetail/com.zbl.ccb

操作步骤:

uni.onNetworkStatusChange(function (res) {  
    console.log('uni.onNetworkStatusChange====>',res.isConnected);//当前是否有网络连接  
    console.log('uni.onNetworkStatusChange====>',res.networkType);//网络类型  
    uni.getNetworkType({  
        success: function (res) {  
            console.log(res.networkType);  
            console.log('uni.getNetworkType====>',res.networkType)  
        }  
    });  
    console.log('plus.networkinfo.getCurrentType()====>',plus.networkinfo.getCurrentType())  
});

预期结果:

获取到手机的网络类型(2G 3G 4G  5G)

实际结果:

可以获取到有网络类型,但是获取不到网络类型始终返回unknow

bug描述:

使用uni.getNetworkType和plus.networkinfo.getCurrentType()始终获取不到手机的4G网络状态值(返回的状态都是unK),但是uni.onNetworkStatusChange可以监听到当前是有网的

更多关于iPhone11上获取不到网络类型在uni-app中的解决方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

蜂窝数据打开

更多关于iPhone11上获取不到网络类型在uni-app中的解决方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html


蜂窝数据打开了plus.networkinfo.getCurrentType()获取到的网络类型也是0,uni.getNetworkType获取到的是Unknown

回复 9157654:请问 解决了吗

在iOS设备上获取网络类型(2G/3G/4G/5G)确实存在限制,这是iOS系统的安全机制导致的。以下是解决方案:

  1. iOS系统限制:
  • iOS的WebView和WKWebView出于隐私考虑,不允许获取详细的网络类型
  • 只能获取到wifi/蜂窝/无网络等基础状态
  1. 当前可行的解决方案:
// 只能获取到基础网络状态
uni.getNetworkType({
  success(res) {
    // iOS下可能返回的值:wifi/2g/3g/4g/5g/unknown/none
    console.log(res.networkType); 
  }
});
回到顶部