diff --git a/star_lock/lib/app.dart b/star_lock/lib/app.dart index 8528b05f..b73e609b 100644 --- a/star_lock/lib/app.dart +++ b/star_lock/lib/app.dart @@ -101,6 +101,7 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { WidgetsBinding.instance.addObserver(this); XSJPushProvider().initJPushService(); + XSJPushProvider().initLocalNotification(false); } @override diff --git a/star_lock/lib/login/login/starLock_login_logic.dart b/star_lock/lib/login/login/starLock_login_logic.dart index 6099423f..c097aec3 100644 --- a/star_lock/lib/login/login/starLock_login_logic.dart +++ b/star_lock/lib/login/login/starLock_login_logic.dart @@ -1,7 +1,10 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/xs_jPhush.dart'; import '../../mine/mine/starLockMine_logic.dart'; import '../../network/api_repository.dart'; @@ -19,6 +22,7 @@ class StarLockLoginLogic extends BaseGetXController { Storage.saveLoginData(entity.data); // Get.back(); // Get.toNamed(Routers.starLockMain); + XSJPushProvider().initJPushService(); Get.offNamedUntil(Routers.starLockMain, (route) => false); } } diff --git a/star_lock/lib/main.dart b/star_lock/lib/main.dart index a32db23e..0b999875 100644 --- a/star_lock/lib/main.dart +++ b/star_lock/lib/main.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/translations/trans_lib.dart'; import 'app.dart'; @@ -18,8 +17,6 @@ FutureOr main() async { // 设置国际化信息 await _initTranslation(); - initLocalNotification(); - runApp(MyApp()); if (AppPlatform.isAndroid) { @@ -48,14 +45,3 @@ Future _setCommonServices() async { } // Get.log(PlatformInfoService.to.info.version); } - -initLocalNotification() async { - WidgetsFlutterBinding.ensureInitialized(); - final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = - FlutterLocalNotificationsPlugin(); - const AndroidInitializationSettings initializationSettingsAndroid = - AndroidInitializationSettings('app_icon'); - const InitializationSettings initializationSettings = - InitializationSettings(android: initializationSettingsAndroid); - await flutterLocalNotificationsPlugin.initialize(initializationSettings); -} diff --git a/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart index 4ea009f5..82495803 100644 --- a/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart +++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart @@ -5,6 +5,7 @@ import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_entity.dart'; import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart'; import 'package:star_lock/tools/storage.dart'; +import 'package:star_lock/tools/xs_jPhush.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../blue/blue_manage.dart'; @@ -55,6 +56,7 @@ class MineSetLogic extends BaseGetXController { UdpHelp().closeUDP(); logOut(); BlueManage().disconnect(); + XSJPushProvider().initLocalNotification(true); Get.offNamedUntil(Routers.starLockLoginPage, (route) => false); } } @@ -80,8 +82,8 @@ class MineSetLogic extends BaseGetXController { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus _getNumberEvent = eventBus.on().listen((event) { - state.currentLanguage.value = event.languageTitle; - }); + state.currentLanguage.value = event.languageTitle; + }); } @override diff --git a/star_lock/lib/talk/udp/udp_reciverData.dart b/star_lock/lib/talk/udp/udp_reciverData.dart index 5766989e..40e4ecf1 100644 --- a/star_lock/lib/talk/udp/udp_reciverData.dart +++ b/star_lock/lib/talk/udp/udp_reciverData.dart @@ -2,8 +2,6 @@ import 'dart:typed_data'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; -import 'package:star_lock/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart'; -import 'package:star_lock/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart'; import 'package:star_lock/talk/udp/udp_manage.dart'; import '../../blue/io_tool/io_tool.dart'; diff --git a/star_lock/lib/tools/xs_jPhush.dart b/star_lock/lib/tools/xs_jPhush.dart index 1ced70b1..8c6a05ec 100644 --- a/star_lock/lib/tools/xs_jPhush.dart +++ b/star_lock/lib/tools/xs_jPhush.dart @@ -1,5 +1,7 @@ import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:jpush_flutter/jpush_flutter.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -48,6 +50,23 @@ class XSJPushProvider { void pushBindDeviceID(String deviceID, int deviceType) async { var entity = await ApiRepository.to.pushBindAppId(deviceID, deviceType); - if (entity.errorCode!.codeIsSuccessful) {} + if (entity.errorCode!.codeIsSuccessful) { + print("绑定成功"); + } + } + + initLocalNotification(bool isCancelLocalPush) async { + WidgetsFlutterBinding.ensureInitialized(); + final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = + FlutterLocalNotificationsPlugin(); + const AndroidInitializationSettings initializationSettingsAndroid = + AndroidInitializationSettings('app_icon'); + const InitializationSettings initializationSettings = + InitializationSettings(android: initializationSettingsAndroid); + await flutterLocalNotificationsPlugin.initialize(initializationSettings); + + if (isCancelLocalPush) { + await flutterLocalNotificationsPlugin.cancelAll(); + } } }