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);
}
});