Flutter Location 包不会返回 iOS 上的当前位置

问题描述 投票:0回答:5

我遇到了这个问题,如果我尝试打电话:

Location location = Location();
LocationData data = await location.getLocation();

未来永远不会返回任何东西,它只是继续前进而不返回值。 这有点奇怪,因为在我的应用程序中我也有谷歌地图,他们毫无问题地找到我的位置,所以这不是 GPS/权限问题。

在 Android 上不存在此问题,仅在 iOS 上存在(目前针对 iOS 10.0)。

编辑:

经过更多测试,我得出的结论是它确实有效,但只是第一次打开应用程序时,对该方法的所有其他请求都没有响应。

flutter location future
5个回答
3
投票

我一直在努力解决这个问题,我知道发生这种情况是因为模拟器上的位置已停止。所以你必须让模拟器位置移动。要移动模拟器的位置,请打开 X-code 模拟器 -> 在 MacBook 的顶角(苹果徽标旁边),单击功能 -> 单击位置 -> 选择自由方式驱动器


1
投票

我设法解决了这个问题,如果发生这种情况,请检查在 onChangedPosition 侦听器处于活动状态时不要调用 .getLocation() 。


0
投票

要在 iOS 中使用它,您必须在 Info.plist 中添加此权限:

NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription



0
投票

我为此苦苦挣扎了一段时间。转到顶部栏的模拟器设置,单击“功能”==>“位置”,从各个位置中选择进行模拟:[无、自定义位置、城市跑步、城市自行车骑行、高速公路驾驶、Apple]。

如果 Info.plist 设置正确,并且 Android Manifest 正确,那么应该可以工作。


0
投票

转到功能 -> 位置并从无更改位置

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.