Flutter:Geolocator在Edge调用getCurrentPosition()报错求助
解决Geolocator 13.x在Edge浏览器中获取位置失败的问题
可能的原因及对应解决方案
Edge位置权限异常
- 打开Edge设置,进入「隐私、搜索和服务」→「位置权限」
- 确认当前网站的位置权限设为「允许」,同时开启「允许网站请求访问你的位置」选项
- 若权限已开启,先切换为「阻止」再重新设为「允许」,强制刷新权限状态
Edge进程或组件故障
- 关闭所有Edge窗口,打开任务管理器结束所有Edge相关进程(包括后台的Microsoft Edge Helper)
- 重启Edge后重新测试代码
- 若无效,可重置Edge设置:设置→「重置设置」→「将设置重置为默认值」(注意提前备份书签等数据)
Geolocator参数配置问题
给getCurrentPosition()添加超时、精度配置,适配Edge的位置获取响应逻辑:var position = await Geolocator.getCurrentPosition({ maximumAge: 0, timeout: 15000, enableHighAccuracy: true });可根据实际情况调整
timeout数值,避免因响应慢触发异常Edge兼容性问题
确认Edge为最新稳定版,若不是则升级;同时打开开发者工具→「设置」→「仿真」,禁用「自动模拟地理位置」,确保调用真实位置服务
额外排查验证
测试Edge原生地理位置API是否正常,运行以下代码:
navigator.geolocation.getCurrentPosition( pos => console.log(pos), err => console.error(err) );
如果原生API也报错,说明是Edge本身位置服务的问题;若原生API正常,可尝试降级Geolocator到12.x版本测试兼容性
内容的提问来源于stack exchange,提问作者Rami Dhouib
相关产品推荐
相关产品推荐

