我正在使用Flutterflow,我已经为定位服务做了一个自定义功能。
在我的应用程序中,我使用了一个打印设备实际位置的功能。这一切都很好。我还添加了一个错误消息,如果定位服务被拒绝,这也很好。但是,如果设备没有任何GPS信号,那么页面将永远加载。我还试图触发一个错误消息,如“没有GPS信号”。不幸的是,这不起作用。
因此,如果定位服务被拒绝,应用程序会显示我的错误消息“GPS:deactivated/no Signal”,我在Xcode的调试控制台中看到以下内容:2022-11-04 13:15:46.174282+0100跑步者扑动:查询用户位置时出错:位置权限被永久拒绝,我们无法请求权限。
但是,如果设备没有任何信号,则不会显示错误消息,并且控制台中会显示以下内容:位置更新失败:错误原因:(null)错误说明:无法完成操作。(kCLErrorDomain错误0。)
有没有人知道我必须做什么,停止无限加载,并产生一个错误消息,如果没有gps信号?
以下是完整的功能代码:
import 'dart:math' as math;
String positionAsWgs(LatLng? position) {
if (position == null) {
return "GPS: no Signal";
} else {
var est = position.latitude;
var north = position.longitude;
String estString = est.toStringAsFixed(5);
String northString = north.toStringAsFixed(5);
var wgs84 = "$estString° N / $northString° E";
if (wgs84 == "0.00000° N / 0.00000° E") {
return "GPS: deactivated";
} else {
return wgs84;
}
}
}
我试图拦截“位置==空”的“无信号”情况,但似乎如果没有信号,设备不会报告空。因此我不知道该查找什么。
1条答案
按热度按时间amrnrhlw1#
你可以用超时来捕捉这种情况。在你等待位置的时候,最好是在你给了权限之后。你的代码应该看起来像下面的片段: