Visual Studio更新后Cordova中navigator相关功能异常求助
Visual Studio Community 更新后 Cordova 项目的 Geolocation 与 Network API 异常问题
我最近刚好碰到和你完全一样的情况!更新完Visual Studio Community后,之前运行正常的Cordova项目突然出了两个棘手的问题:
- navigator.geolocation.watchPosition 彻底失效,完全接收不到任何位置更新回调,但旧版本打包的APK在同一台设备上运行毫无问题;
- navigator.connection.type 不管设备实际网络状态如何,始终返回
"none",连Wi-Fi满格的时候也一样。
在开发者社区交流时,发现不少同好都反馈了这个问题,大概率是最近的VS更新影响了Cordova工具链和插件的兼容性:
- 有开发者指出是
cordova-plugin-geolocation和cordova-plugin-network-information这两个核心插件,和新版VS集成的Cordova工具版本不匹配; - 部分人尝试回退VS中的Cordova工具到之前的稳定版本(比如11.x系列),重新构建后两个API的功能都恢复了正常;
- 还有人直接更新这两个插件到最新兼容版本,清理项目缓存后重新打包,问题也得到了解决。
给你几个可以尝试的解决方案:
- 回退Cordova工具版本:打开VS的「工具」→「选项」→「Apache Cordova 工具」→「Cordova 工具」,选择你之前项目正常运行时对应的工具版本;
- 更新相关插件:在项目根目录通过命令行执行
cordova plugin update cordova-plugin-geolocation和cordova plugin update cordova-plugin-network-information,或者直接在config.xml里指定插件的最新兼容版本; - 清理构建缓存:删除项目下的
platforms和plugins文件夹,然后重新添加目标平台(比如cordova platform add android)和插件,再重新构建项目。
内容的提问来源于stack exchange,提问作者PeteQoo
相关产品推荐
相关产品推荐

