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 回复
        
      
      
        蜂窝数据打开了plus.networkinfo.getCurrentType()获取到的网络类型也是0,uni.getNetworkType获取到的是Unknown
回复 9157654:请问 解决了吗
在iOS设备上获取网络类型(2G/3G/4G/5G)确实存在限制,这是iOS系统的安全机制导致的。以下是解决方案:
- iOS系统限制:
 
- iOS的WebView和WKWebView出于隐私考虑,不允许获取详细的网络类型
 - 只能获取到wifi/蜂窝/无网络等基础状态
 
- 当前可行的解决方案:
 
// 只能获取到基础网络状态
uni.getNetworkType({
  success(res) {
    // iOS下可能返回的值:wifi/2g/3g/4g/5g/unknown/none
    console.log(res.networkType); 
  }
});
        
      
                    
                  
                    
