我正在使用CrossGeolocator来检索设备的当前纬度和经度.但是我在OnAppearing覆盖方法中使用它并且它无法正常工作.该GetPositionAsync方法挂起的应用程序.
protected override void OnAppearing()
{
base.OnAppearing();
var position = GetPosition().Result;
var lat = position.Latitude;
var lon = position.Longitude;
}
private static async Task<Position> GetPosition()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(10000);
return position;
}
Run Code Online (Sandbox Code Playgroud)
细节是我在应用程序的按钮中使用相同的GetPosition方法并且工作得很好.
有人可以帮我解决这个问题吗?
尝试这个:
创建一个全局变量:
private Position _position;
Run Code Online (Sandbox Code Playgroud)
然后调用ur方法以获取构造函数上的位置。像这样重写ur方法:
public async void GetPosition()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var myPosition = await locator.GetPositionAsync();
_position = new Position(myPosition.Latitude, myPosition.Longitude);
}
Run Code Online (Sandbox Code Playgroud)
然后在您要使用的地方做一会儿:
while(_position == new Postion(0,0))
GetPosition();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5013 次 |
| 最近记录: |