Windows浏览器调试Flutter时network_info_plus报PlatformException(87)求助
解决方案:PlatformException(87)(network_info_plus Web端调试报错)
错误原因
这个报错是因为network_info_plus的Web实现依赖浏览器的Network Information API,而该API存在以下限制:
- 仅在HTTPS环境(含本地localhost)下可用,部分浏览器对localhost的支持也有特殊限制
- 部分Chromium内核浏览器默认禁用了该API
- 浏览器权限设置阻止了获取网络信息
修复步骤
验证API可用性
打开浏览器开发者工具(F12),在Console面板执行以下代码,确认API是否正常:navigator.connection若返回
undefined,说明当前环境不支持该API,需更换Chrome/Edge最新版本浏览器。启用浏览器Network Information API
- 在浏览器地址栏输入对应内核的配置地址:
- Chrome:
chrome://flags/#enable-network-information-api - Edge:
edge://flags/#enable-network-information-api
- Chrome:
- 将选项设置为Enabled,重启浏览器后重新调试。
- 在浏览器地址栏输入对应内核的配置地址:
配置Web端权限
在项目根目录的web/index.html中添加权限声明meta标签:<meta http-equiv="Permissions-Policy" content="network-info=(self)">调整依赖版本
部分版本的network_info_plus存在Web端兼容性问题,可尝试切换版本:- 修改
pubspec.yaml中的依赖:network_info_plus: ^4.0.1 - 执行
flutter pub get重新安装。
- 修改
添加错误捕获
在调用network_info_plus的代码中增加异常处理,避免崩溃:try { final wifiName = await NetworkInfo().getWifiName(); // 处理网络信息逻辑 } on PlatformException catch (e) { print('获取网络信息失败: ${e.code}'); // 降级处理(比如使用默认值或提示用户) }
内容的提问来源于stack exchange,提问作者Ritik Pawar
相关产品推荐
相关产品推荐

