From 63b5e3f79e34a9761a37cea70fbba9a1b9fbafa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDaisyWu=E2=80=9D?= <“18682150237@163.com”> Date: Mon, 10 Feb 2025 14:05:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20sky=E5=92=8C=E9=91=AB=E6=B3=93=E4=BD=B3?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=B8=8B=E6=8E=A8=E9=80=81=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E7=9A=84=E5=8C=BA=E5=88=86=E4=BB=A5=E5=8F=8A=E5=90=84=E4=B8=AA?= =?UTF-8?q?=E5=8E=82=E5=95=86=E9=80=9A=E9=81=93ID=E7=9A=84=E8=A7=84?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 48 ++++++++++++----- android/app/src/main/AndroidManifest.xml | 30 +++++------ lib/main.dart | 4 +- .../lockMian/lockMain/lockMain_logic.dart | 53 +++++++++++++++++++ lib/tools/push/xs_jPhush.dart | 9 ++++ 5 files changed, 115 insertions(+), 29 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 549a0230..ce046057 100755 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -117,7 +117,19 @@ android { applicationId "com.skychip.lock" signingConfig signingConfigs.sky resValue "string", "app_name", "TTLock Pro" - manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock" + manifestPlaceholders = [ + JPUSH_PKGNAME : "com.skychip.lock", + JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey + JPUSH_CHANNEL : "flutter_channel", + XIAOMI_APPID : "MI-2882303761520287291", + XIAOMI_APPKEY : "MI-5352028744291", + OPPO_APPKEY : "OP-ccae67a4a8c1470a8350b0d6a89f8105", + OPPO_APPID : "OP-31586713", + OPPO_APPSECRET: "OP-2339389233094ca297de7b10213f7bd8", + VIVO_APPKEY : "6a18657357d176364a91f50e4c9cd7c4", + VIVO_APPID : "105724810", + HONOR_APPID : "104437184", + ] proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-sky.pro' } sky_pre { @@ -139,7 +151,19 @@ android { applicationId "com.xhjcn.lock" signingConfig signingConfigs.xhj resValue "string", "app_name", "Star Lock" - manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock" + manifestPlaceholders = [ + JPUSH_PKGNAME : "com.xhjcn.lock", + JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey + JPUSH_CHANNEL : "flutter_channel", + XIAOMI_APPID : "MI-2882303761520314939", + XIAOMI_APPKEY : "MI-5312031456939", + OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b", + OPPO_APPID : "OP-31726001", + OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450", + VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb", + VIVO_APPID : "105752244", + HONOR_APPID : "104458196", + ] proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro' } @@ -224,22 +248,22 @@ android { JPUSH_PKGNAME : "这里不重要,在口味配置", //JPush 上注册的包名对应的 Appkey. // JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey - JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey - JPUSH_CHANNEL : "flutter_channel", +// JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey +// JPUSH_CHANNEL : "flutter_channel", //若不集成厂商通道,可直接跳过以下配置 //以下为sky的配置 // XIAOMI_APPID : "MI-2882303761520287291", // XIAOMI_APPKEY : "MI-5352028744291", //以下均为鑫泓佳的配置 - XIAOMI_APPID : "MI-2882303761520314939", - XIAOMI_APPKEY : "MI-5312031456939", - OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b", - OPPO_APPID : "OP-31726001", - OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450", - VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb", - VIVO_APPID : "105752244", - HONOR_APPID : "104458196", +// XIAOMI_APPID : "MI-2882303761520314939", +// XIAOMI_APPKEY : "MI-5312031456939", +// OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b", +// OPPO_APPID : "OP-31726001", +// OPPO_APPSECRET: "OP-05723986bba64183a71530b496922450", +// VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb", +// VIVO_APPID : "105752244", +// HONOR_APPID : "104458196", ] splits { abi { diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 5bc305cb..03314074 100755 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -79,23 +79,23 @@ - - - + + + + + + + + + - + + + - + + + main() async { } }); - NotificationService().init(); // 初始化通知服务 - //ToDo: 增加对讲调试、正式可删除 runApp(MultiProvider(providers: [ ChangeNotifierProvider(create: (_) => DebugInfoModel()), @@ -98,4 +96,6 @@ Future privacySDKInitialization() async { // 初始化JPush服务 final XSJPushProvider jpushProvider = XSJPushProvider(); await jpushProvider.initJPushService(); + await jpushProvider.initLocalNotification(isCancelLocalPush: false); + NotificationService().init(); // 初始化通知服务 } diff --git a/lib/main/lockMian/lockMain/lockMain_logic.dart b/lib/main/lockMian/lockMain/lockMain_logic.dart index 75a0701f..b283a6f0 100755 --- a/lib/main/lockMian/lockMain/lockMain_logic.dart +++ b/lib/main/lockMian/lockMain/lockMain_logic.dart @@ -11,10 +11,12 @@ import 'package:star_lock/flavors.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_logic.dart'; import 'package:star_lock/main/lockMian/lockList/lockList_logic.dart'; +import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart'; import 'package:star_lock/talk/starChart/star_chart_manage.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/showTipView.dart'; +import 'package:star_lock/tools/store_service.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; @@ -46,6 +48,56 @@ class LockMainLogic extends BaseGetXController { return entity; } + //用户信息 + Future getUserInfoRequest() async { + final MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo(); + if (entity.errorCode!.codeIsSuccessful) { + final String languageCodeAndCountryCode = entity.data!.lang!; + if (languageCodeAndCountryCode.isEmpty) { + await StoreService.to.saveLanguageCode(''); + await Get.updateLocale(Get.deviceLocale!); + } else if (languageCodeAndCountryCode.contains('-')) { + final List parts = languageCodeAndCountryCode.split('-'); + final Locale locale = Locale(parts[0], parts[1]); + await Get.updateLocale(locale); + await StoreService.to.saveLanguageCode(locale.toString()); + } else if (languageCodeAndCountryCode.contains('_')) { + final List parts = languageCodeAndCountryCode.split('_'); + final Locale locale = Locale(parts[0], parts[1]); + await Get.updateLocale(locale); + AppLog.log('用户信息请求成功 更新locale: $locale'); + await StoreService.to.saveLanguageCode(locale.toString()); + } + + Storage.setBool(saveIsVip, entity.data!.isVip == 1); + if (entity.data!.deviceId != null) { + if (entity.data!.deviceId!.isEmpty) { + bindPushDevice(); + } + } + if (entity.data!.starchart != null) { + if (entity.data!.starchart!.starchartId == null) { + bindStarChart(); + } + } else { + StartChartManage().init(); + } + } + } + + Future bindPushDevice() async { + // 初始化JPush服务并绑定设备ID + final XSJPushProvider jpushProvider = XSJPushProvider(); + await jpushProvider.initJPushService(); + await jpushProvider.initLocalNotification(isCancelLocalPush: false); + } + +//绑定星图 + Future bindStarChart() async { + //初始化星图服务并绑定配置 + await StartChartManage().init(); + } + Future updateZoneOffsetsAndLanguages() async { final LoginEntity entity = await ApiRepository.to.updateZoneOffsetsAndLanguages( @@ -322,6 +374,7 @@ class LockMainLogic extends BaseGetXController { super.onInit(); checkWhetherPushIsEnabled(); _initSubscription(); + getUserInfoRequest(); // connectListener(); // AppLog.log('onInit() updateZoneOffsetsAndLanguages'); diff --git a/lib/tools/push/xs_jPhush.dart b/lib/tools/push/xs_jPhush.dart index 254773bb..4e25400d 100755 --- a/lib/tools/push/xs_jPhush.dart +++ b/lib/tools/push/xs_jPhush.dart @@ -88,6 +88,15 @@ class XSJPushProvider { Future pushBindDeviceID(String deviceID, int deviceType) async { try { + if (deviceID.isEmpty) { + AppLog.log('Device ID is empty.'); + //绑定设备id + final String rid = await jpush.getRegistrationID(); + AppLog.log('onConnected registration id : $rid'); + await Storage.setString(pushDeviceID, rid); + deviceID = rid; + deviceType = Platform.isAndroid ? 10 : 20; + } final MineUnbindPhoneOrEmailEntity entity = await ApiRepository.to.pushBindAppId(deviceID, deviceType); if (entity.errorCode!.codeIsSuccessful) {