CrossGeolocator的GetPositionAsync不起作用 [英] CrossGeolocator's GetPositionAsync does not work
问题描述
我正在使用 CrossGeolocator 来检索设备的当前纬度和经度.但是,我在 OnAppearing 覆盖方法中使用它,但它不起作用. GetPositionAsync 方法将应用程序挂起.
I am using CrossGeolocator to retrieve the current latitude and longitude of the device. However I am using it inside an OnAppearing override method and it is not working. The GetPositionAsync method hangs the App.
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;
}
详细信息是,我在应用程序的按钮中使用了相同的 GetPosition 方法,并且效果很好.
Detail is that I am using this same GetPosition method in buttons in the application and works perfectly.
有人可以在这件事上帮助我吗?
Could someone help me in this matter?
推荐答案
尝试一下:
创建一个全局变量:
private Position _position;
然后调用ur方法以获取构造函数上的位置. 像这样重新编写您的方法:
Then call ur method to get the position on constructor. Re-write ur method like this:
public async void GetPosition()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var myPosition = await locator.GetPositionAsync();
_position = new Position(myPosition.Latitude, myPosition.Longitude);
}
然后花点时间在这里使用它:
Then make a while where u want to use this:
while(_position == new Postion(0,0))
GetPosition();
这篇关于CrossGeolocator的GetPositionAsync不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!