|
@@ -11,6 +11,7 @@ import 'package:bbyyy/https/my_request.dart';
|
|
|
import 'package:bbyyy/my_tools/dims.dart';
|
|
import 'package:bbyyy/my_tools/dims.dart';
|
|
|
import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
|
|
import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
|
|
|
import 'package:bbyyy/my_tools/event_bus.dart';
|
|
import 'package:bbyyy/my_tools/event_bus.dart';
|
|
|
|
|
+import 'package:bbyyy/my_tools/loacion_util.dart';
|
|
|
import 'package:bbyyy/my_tools/my_cookie.dart';
|
|
import 'package:bbyyy/my_tools/my_cookie.dart';
|
|
|
import 'package:bbyyy/my_tools/my_datas.dart';
|
|
import 'package:bbyyy/my_tools/my_datas.dart';
|
|
|
import 'package:bbyyy/my_tools/my_tools.dart';
|
|
import 'package:bbyyy/my_tools/my_tools.dart';
|
|
@@ -36,28 +37,14 @@ class RootPage extends StatefulWidget {
|
|
|
class _RootPageState extends State<RootPage> {
|
|
class _RootPageState extends State<RootPage> {
|
|
|
PageController pageController = PageController(initialPage: 0);
|
|
PageController pageController = PageController(initialPage: 0);
|
|
|
DateTime lastPopTime;
|
|
DateTime lastPopTime;
|
|
|
- AMapFlutterLocation _locationPlugin = new AMapFlutterLocation();
|
|
|
|
|
- Map<String, Object> _locationResult;
|
|
|
|
|
|
|
|
|
|
- StreamSubscription<Map<String, Object>> _locationListener;
|
|
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
void initState() {
|
|
void initState() {
|
|
|
super.initState();
|
|
super.initState();
|
|
|
MyCookie().initP();
|
|
MyCookie().initP();
|
|
|
-
|
|
|
|
|
- if (Platform.isIOS) {
|
|
|
|
|
- requestAccuracyAuthorization();
|
|
|
|
|
- }
|
|
|
|
|
- _locationListener = _locationPlugin.onLocationChanged().listen((Map<String, Object> result) {
|
|
|
|
|
- result.forEach((key, value) {
|
|
|
|
|
- print('$key---------------$value');
|
|
|
|
|
- });
|
|
|
|
|
- setState(() {
|
|
|
|
|
- _locationResult = result;
|
|
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
- getLocation();
|
|
|
|
|
|
|
+ LocationUtil().initLocation();
|
|
|
|
|
+ LocationUtil().getLocation();
|
|
|
Nsq.ConnectServer(
|
|
Nsq.ConnectServer(
|
|
|
Nsq.handlerMessage, // 接收消息处理逻辑
|
|
Nsq.handlerMessage, // 接收消息处理逻辑
|
|
|
// serverIp: '172.16.104.14',
|
|
// serverIp: '172.16.104.14',
|
|
@@ -97,13 +84,7 @@ class _RootPageState extends State<RootPage> {
|
|
|
// TODO: implement dispose
|
|
// TODO: implement dispose
|
|
|
EventBus().off('ChangePage');
|
|
EventBus().off('ChangePage');
|
|
|
EventBus().off('hasNoPay');
|
|
EventBus().off('hasNoPay');
|
|
|
- ///移除定位监听
|
|
|
|
|
- if (null != _locationListener) {
|
|
|
|
|
- _locationListener?.cancel();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- ///销毁定位
|
|
|
|
|
- _locationPlugin.destroy();
|
|
|
|
|
|
|
+ LocationUtil().stopLocation();
|
|
|
super.dispose();
|
|
super.dispose();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -209,30 +190,6 @@ class _RootPageState extends State<RootPage> {
|
|
|
}, (error) {});
|
|
}, (error) {});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- Future<void> getLocation() async {
|
|
|
|
|
- var locationStatus = await Permission.location.status;
|
|
|
|
|
- var cameraStatus = await Permission.camera.status;
|
|
|
|
|
- print('Permission.location.status--------------$locationStatus');
|
|
|
|
|
- print('Permission.camera.status--------------$cameraStatus');
|
|
|
|
|
- if (locationStatus.isDenied) {
|
|
|
|
|
- await Permission.location.request().then((value) async {
|
|
|
|
|
- print('Permission.location.request()-----$value');
|
|
|
|
|
- if (value == PermissionStatus.granted) {
|
|
|
|
|
- _setLocationOption();
|
|
|
|
|
- _locationPlugin.startLocation();
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- } else if (locationStatus.isGranted) {
|
|
|
|
|
- _setLocationOption();
|
|
|
|
|
- _locationPlugin.startLocation();
|
|
|
|
|
- }
|
|
|
|
|
- if (cameraStatus.isDenied) {
|
|
|
|
|
- await Permission.camera.request().then((value) {
|
|
|
|
|
- print('Permission.camera.request()-----$value');
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
//查询优惠券活动
|
|
//查询优惠券活动
|
|
|
checkCouponEvent() {
|
|
checkCouponEvent() {
|
|
|
MyDio().query({
|
|
MyDio().query({
|
|
@@ -251,59 +208,7 @@ class _RootPageState extends State<RootPage> {
|
|
|
}, (error) {});
|
|
}, (error) {});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void requestAccuracyAuthorization() async {
|
|
|
|
|
- AMapAccuracyAuthorization currentAccuracyAuthorization = await _locationPlugin.getSystemAccuracyAuthorization();
|
|
|
|
|
- if (currentAccuracyAuthorization == AMapAccuracyAuthorization.AMapAccuracyAuthorizationFullAccuracy) {
|
|
|
|
|
- print("精确定位类型");
|
|
|
|
|
- } else if (currentAccuracyAuthorization == AMapAccuracyAuthorization.AMapAccuracyAuthorizationReducedAccuracy) {
|
|
|
|
|
- print("模糊定位类型");
|
|
|
|
|
- } else {
|
|
|
|
|
- print("未知定位类型");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- void _setLocationOption() {
|
|
|
|
|
- AMapLocationOption locationOption = new AMapLocationOption();
|
|
|
|
|
-
|
|
|
|
|
- ///是否单次定位
|
|
|
|
|
- locationOption.onceLocation = true;
|
|
|
|
|
|
|
|
|
|
- ///是否需要返回逆地理信息
|
|
|
|
|
- locationOption.needAddress = true;
|
|
|
|
|
|
|
|
|
|
- ///逆地理信息的语言类型
|
|
|
|
|
- locationOption.geoLanguage = GeoLanguage.DEFAULT;
|
|
|
|
|
|
|
|
|
|
- locationOption.desiredLocationAccuracyAuthorizationMode = AMapLocationAccuracyAuthorizationMode.ReduceAccuracy;
|
|
|
|
|
-
|
|
|
|
|
- locationOption.fullAccuracyPurposeKey = "AMapLocationScene";
|
|
|
|
|
-
|
|
|
|
|
- ///设置Android端连续定位的定位间隔
|
|
|
|
|
- locationOption.locationInterval = 2000;
|
|
|
|
|
-
|
|
|
|
|
- ///设置Android端的定位模式<br>
|
|
|
|
|
- ///可选值:<br>
|
|
|
|
|
- ///<li>[AMapLocationMode.Battery_Saving]</li>
|
|
|
|
|
- ///<li>[AMapLocationMode.Device_Sensors]</li>
|
|
|
|
|
- ///<li>[AMapLocationMode.Hight_Accuracy]</li>
|
|
|
|
|
- locationOption.locationMode = AMapLocationMode.Hight_Accuracy;
|
|
|
|
|
-
|
|
|
|
|
- ///设置iOS端的定位最小更新距离<br>
|
|
|
|
|
- locationOption.distanceFilter = -1;
|
|
|
|
|
-
|
|
|
|
|
- ///设置iOS端期望的定位精度
|
|
|
|
|
- /// 可选值:<br>
|
|
|
|
|
- /// <li>[DesiredAccuracy.Best] 最高精度</li>
|
|
|
|
|
- /// <li>[DesiredAccuracy.BestForNavigation] 适用于导航场景的高精度 </li>
|
|
|
|
|
- /// <li>[DesiredAccuracy.NearestTenMeters] 10米 </li>
|
|
|
|
|
- /// <li>[DesiredAccuracy.Kilometer] 1000米</li>
|
|
|
|
|
- /// <li>[DesiredAccuracy.ThreeKilometers] 3000米</li>
|
|
|
|
|
- locationOption.desiredAccuracy = DesiredAccuracy.Best;
|
|
|
|
|
-
|
|
|
|
|
- ///设置iOS端是否允许系统暂停定位
|
|
|
|
|
- locationOption.pausesLocationUpdatesAutomatically = false;
|
|
|
|
|
-
|
|
|
|
|
- ///将定位参数设置给定位插件
|
|
|
|
|
- _locationPlugin.setLocationOption(locationOption);
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|