diff --git a/android/app/build.gradle b/android/app/build.gradle index 68d0a18d..9cdae46d 100755 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -259,4 +259,8 @@ dependencies { // implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar') //接入 VIVO 厂商 implementation 'cn.jiguang.sdk.plugin:vivo:5.2.3' + + // Umeng统计 + implementation 'com.umeng.umsdk:common:9.3.7' + implementation 'com.umeng.umsdk:asms:1.4.1' } diff --git a/android/app/proguard-rules-sky.pro b/android/app/proguard-rules-sky.pro index d8df8d76..92eda14c 100644 --- a/android/app/proguard-rules-sky.pro +++ b/android/app/proguard-rules-sky.pro @@ -131,4 +131,9 @@ -keep class com.tencent.mm.opensdk.** { *; } -dontwarn com.tencent.bugly.** --keep public class com.tencent.bugly.**{*;} \ No newline at end of file +-keep public class com.tencent.bugly.**{*;} + +-keep class com.umeng.** { *; } +-keep class com.umeng.**$* { *; } +-keep class com.umeng.message.** { *; } +-keep class com.umeng.message.**$* { *; } \ No newline at end of file diff --git a/android/app/proguard-rules-xhj.pro b/android/app/proguard-rules-xhj.pro index 78db18c1..b48710ff 100644 --- a/android/app/proguard-rules-xhj.pro +++ b/android/app/proguard-rules-xhj.pro @@ -131,4 +131,9 @@ -keep class com.tencent.mm.opensdk.** { *; } -dontwarn com.tencent.bugly.** --keep public class com.tencent.bugly.**{*;} \ No newline at end of file +-keep public class com.tencent.bugly.**{*;} + +-keep class com.umeng.** { *; } +-keep class com.umeng.**$* { *; } +-keep class com.umeng.message.** { *; } +-keep class com.umeng.message.**$* { *; } \ No newline at end of file diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index de19f619..3934e6aa 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -128,4 +128,9 @@ } -keep class com.tencent.mm.sdk.** { *; } --keep class com.tencent.mm.opensdk.** { *; } \ No newline at end of file +-keep class com.tencent.mm.opensdk.** { *; } + +-keep class com.umeng.** { *; } +-keep class com.umeng.**$* { *; } +-keep class com.umeng.message.** { *; } +-keep class com.umeng.message.**$* { *; } \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index cbd0e27b..8415ede5 100755 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -58,6 +58,12 @@ + + + + + + + + + + + + + + + diff --git a/android/app/src/main/assets/umeng_config.xml b/android/app/src/main/assets/umeng_config.xml new file mode 100644 index 00000000..28e1002b --- /dev/null +++ b/android/app/src/main/assets/umeng_config.xml @@ -0,0 +1,5 @@ + + + 671244cf80464b33f6df9648 + RD_test + \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt b/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt index dcd984c1..520179ea 100755 --- a/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt +++ b/android/app/src/main/kotlin/com/skychip/lock/MainActivity.kt @@ -12,10 +12,16 @@ import android.bluetooth.BluetoothAdapter; import androidx.core.content.FileProvider import java.io.File +import com.umeng.commonsdk.UMConfigure + class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(flutterEngine!!) + + // 初始化 Umeng SDK + UMConfigure.init(this, "671244cf80464b33f6df9648", "RD_test", UMConfigure.DEVICE_TYPE_PHONE, null) + MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result -> if (call.method == "loadNativeShare") { val map = call.arguments as Map diff --git a/ios/Podfile b/ios/Podfile index f60e3f48..76407fa5 100755 --- a/ios/Podfile +++ b/ios/Podfile @@ -30,6 +30,9 @@ flutter_ios_podfile_setup target 'Runner' do flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + + pod 'UMCommon' + pod 'UMDevice' end # Plugin Pods diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9952b79e..b8e2e0f3 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -148,6 +148,13 @@ PODS: - system_settings (0.0.1): - Flutter - Toast (4.1.1) + - UMCommon (7.4.7): + - UMDevice + - UMDevice (3.4.0) + - umeng_common_sdk (0.0.1): + - Flutter + - UMCommon + - UMDevice - url_launcher_ios (0.0.1): - Flutter - video_player_avfoundation (0.0.1): @@ -194,6 +201,9 @@ DEPENDENCIES: - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `.symlinks/plugins/sqflite/darwin`) - system_settings (from `.symlinks/plugins/system_settings/ios`) + - UMCommon + - UMDevice + - umeng_common_sdk (from `.symlinks/plugins/umeng_common_sdk/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) @@ -221,6 +231,8 @@ SPEC REPOS: - SDWebImage - SwiftyGif - Toast + - UMCommon + - UMDevice - WechatOpenSDK-XCFramework EXTERNAL SOURCES: @@ -292,6 +304,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/sqflite/darwin" system_settings: :path: ".symlinks/plugins/system_settings/ios" + umeng_common_sdk: + :path: ".symlinks/plugins/umeng_common_sdk/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" video_player_avfoundation: @@ -354,11 +368,14 @@ SPEC CHECKSUMS: SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 system_settings: 8f5cdbfa72c677fc8d665b863bcc20d393d87e9d Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e + UMCommon: 8b4cd0423297c39bca6eea1ec896558b40e5bcf7 + UMDevice: dcdf7ec167387837559d149fbc7d793d984faf82 + umeng_common_sdk: a8abd7f86dfd013dbbeeae587ee143760c6582f2 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1 WechatOpenSDK-XCFramework: 36fb2bea0754266c17184adf4963d7e6ff98b69f -PODFILE CHECKSUM: 317f9473a5705c6fe4d79d95e81676f248048fdc +PODFILE CHECKSUM: a4d4747e9f246a7c5b9d643d5efa33799112963a COCOAPODS: 1.14.3 diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 086a7d55..1c0be45e 100755 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -5,7 +5,7 @@ #import "XSFlutterManager.h" #import - +#import @interface AppDelegate() @@ -19,6 +19,8 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [UMConfigure initWithAppkey:@"671244ae80464b33f6df9646" channel:@"RD_test"]; + XSFlutterManager *VC = [[XSFlutterManager alloc] init]; self.window.rootViewController = VC; [self.window makeKeyAndVisible]; diff --git a/lib/login/forgetPassword/starLock_forgetPassword_logic.dart b/lib/login/forgetPassword/starLock_forgetPassword_logic.dart index c9119cdf..3566ba34 100755 --- a/lib/login/forgetPassword/starLock_forgetPassword_logic.dart +++ b/lib/login/forgetPassword/starLock_forgetPassword_logic.dart @@ -6,9 +6,11 @@ import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/login/forgetPassword/starLock_forgetPassword_state.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/login/register/entity/SendValidationCodeEntity.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../network/api_repository.dart'; import '../../tools/baseGetXController.dart'; +import '../../tools/dateTool.dart'; import '../../tools/regularExpression.dart'; import '../../tools/showTipView.dart'; import '../register/entity/checkIP_entity.dart'; @@ -53,8 +55,20 @@ class StarLockForgetPasswordLogic extends BaseGetXController { 'B748F838-94EE-4BDB-A0E6-7B2D16849792', state.verificationCode.value); if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('resetPassword_result', { + 'account':state.phoneStr.value, + 'date':DateTool().getNowDateWithType(1), + 'resetPassword_res':'成功', + }); + showToast('重置成功'.tr); Get.back(); + }else{ + UmengCommonSdk.onEvent('resetPassword_result', { + 'account':state.phoneStr.value, + 'date':DateTool().getNowDateWithType(1), + 'resetPassword_res':'${entity.errorCode}--${entity.errorMsg}', + }); } } diff --git a/lib/login/login/starLock_login_logic.dart b/lib/login/login/starLock_login_logic.dart index a5e2fa90..2b5e797e 100755 --- a/lib/login/login/starLock_login_logic.dart +++ b/lib/login/login/starLock_login_logic.dart @@ -1,4 +1,3 @@ -import 'dart:io'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -9,11 +8,12 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/mine/mine/starLockMine_state.dart'; import 'package:star_lock/tools/baseGetXController.dart'; -import 'package:star_lock/tools/push/xs_jPhush.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../main/lockMian/lockMain/lockMain_logic.dart'; import '../../mine/mine/starLockMine_logic.dart'; import '../../network/api_repository.dart'; +import '../../tools/dateTool.dart'; import '../../tools/eventBusEventManage.dart'; import '../../tools/showTipView.dart'; import '../../tools/storage.dart'; @@ -51,6 +51,12 @@ class StarLockLoginLogic extends BaseGetXController { username: state.emailOrPhone.value, deviceInfo: state.deviceInfoMap); if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('login_result', { + 'account':state.emailOrPhone.value, + 'date':DateTool().getNowDateWithType(1), + 'login_res':'成功', + }); + Storage.saveLoginData(entity.data); Storage.setBool(saveIsVip, entity.data!.isVip == 1); eventBus.fire(MineInfoChangeRefreshUI()); @@ -59,6 +65,12 @@ class StarLockLoginLogic extends BaseGetXController { } Get.offNamedUntil(Routers.starLockMain, (Route route) => false); BlueManage().scanDevices.clear(); //清除设备缓存 + }else{ + UmengCommonSdk.onEvent('login_result', { + 'account':state.emailOrPhone.value, + 'date':DateTool().getNowDateWithType(1), + 'login_res':'${entity.errorCode}--${entity.errorMsg}', + }); } } diff --git a/lib/login/register/starLock_register_logic.dart b/lib/login/register/starLock_register_logic.dart index 22d05cab..ac6f76c0 100755 --- a/lib/login/register/starLock_register_logic.dart +++ b/lib/login/register/starLock_register_logic.dart @@ -11,9 +11,11 @@ import 'package:star_lock/login/register/entity/SendValidationCodeEntity.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/storage.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../network/api_repository.dart'; import '../../tools/baseGetXController.dart'; +import '../../tools/dateTool.dart'; import '../../tools/regularExpression.dart'; import '../../tools/showTipView.dart'; import 'entity/checkIP_entity.dart'; @@ -58,12 +60,24 @@ class StarLockRegisterLogic extends BaseGetXController { verificationCode: state.verificationCode.value, deviceInfo: state.deviceInfoMap.value); if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('register_result', { + 'account':state.phoneOrEmailStr.value, + 'date':DateTool().getNowDateWithType(1), + 'register_res':'成功', + }); + Storage.saveLoginData(entity.data); Storage.setBool(saveIsVip, entity.data!.isVip == 1); eventBus.fire(MineInfoChangeRefreshUI()); XSJPushProvider().initLocalNotification(isCancelLocalPush: false); Get.offNamedUntil(Routers.starLockMain, (Route route) => false); BlueManage().scanDevices.clear(); //清除设备缓存 + }else{ + UmengCommonSdk.onEvent('register_result', { + 'account':state.phoneOrEmailStr.value, + 'date':DateTool().getNowDateWithType(1), + 'register_res':'${entity.errorCode}--${entity.errorMsg}', + }); } } diff --git a/lib/main.dart b/lib/main.dart index a72682a4..a20f0449 100755 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,6 +17,7 @@ import 'package:star_lock/tools/platform_info_services.dart'; import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/translations/trans_lib.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import 'app.dart'; import 'app_settings/app_settings.dart'; @@ -24,6 +25,10 @@ import 'tools/store_service.dart'; // 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明 FutureOr main() async { + + UmengCommonSdk.initCommon('671244cf80464b33f6df9648', ' 671244ae80464b33f6df9646 Store', 'RD_test'); + UmengCommonSdk.setPageCollectionModeManual(); + FlutterBugly.postCatchedException(() async { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/main/lockDetail/card/addICCard/addICCard_logic.dart b/lib/main/lockDetail/card/addICCard/addICCard_logic.dart index 9884cbd3..26945a8a 100755 --- a/lib/main/lockDetail/card/addICCard/addICCard_logic.dart +++ b/lib/main/lockDetail/card/addICCard/addICCard_logic.dart @@ -7,6 +7,7 @@ import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockDetail/card/addICCard/addICCard_entity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart'; @@ -101,10 +102,16 @@ class AddICCardLogic extends BaseGetXController{ Future _replyAddICCardConfirmation(Reply reply) async { final int status = reply.data[2]; state.ifAddState.value = false; + final String getMobile = (await Storage.getMobile())!; switch(status){ case 0x00: //成功 - //成功 + UmengCommonSdk.onEvent('add_card', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'add_card_result':'成功', + }); switch(reply.data[5]){ case 0xff: // 注册指纹失败 @@ -139,6 +146,12 @@ class AddICCardLogic extends BaseGetXController{ break; default: //失败 + UmengCommonSdk.onEvent('add_card', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'add_card_result':reply.data[2], + }); break; } } diff --git a/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart b/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart index a04750a8..b3c66aa7 100755 --- a/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart +++ b/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart @@ -7,7 +7,9 @@ import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_entity.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_state.dart'; import 'package:star_lock/main/lockDetail/lockOperatingRecord/lockOperatingRecordGetLastRecordTime_entity.dart'; import 'package:star_lock/tools/commonDataManage.dart'; +import 'package:star_lock/tools/dateTool.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../../blue/blue_manage.dart'; import '../../../blue/io_protocol/io_referEventRecordTime.dart'; @@ -39,6 +41,7 @@ class DoorLockLogLogic extends BaseGetXController { Future _replyReferEventRecordTime(Reply reply) async { cancelBlueConnetctToastTimer(); final int status = reply.data[2]; + switch (status) { case 0x00: //成功 @@ -106,8 +109,16 @@ class DoorLockLogLogic extends BaseGetXController { // 查询事件记录(时间查询) Future senderReferEventRecordTime() async { showEasyLoading(); - showBlueConnetctToastTimer(action: () { + showBlueConnetctToastTimer(action: () async { dismissEasyLoading(); + + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('check_doorLockLog', { + 'lockName':state.keyInfos.value.lockName!, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'open_lock_result':'超时', + }); }); BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionStateState) async { @@ -141,6 +152,15 @@ class DoorLockLogLogic extends BaseGetXController { BluetoothConnectionState.disconnected) { dismissEasyLoading(); cancelBlueConnetctToastTimer(); + + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('check_doorLockLog', { + 'lockName':state.keyInfos.value.lockName!, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'open_lock_result':'断开连接', + }); + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } @@ -225,6 +245,13 @@ class DoorLockLogLogic extends BaseGetXController { if (state.ifHaveNext == true) { getLockRecordLastUploadDataTime(); } else { + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('check_doorLockLog', { + 'lockName':state.keyInfos.value.lockName!, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'open_lock_result':'成功', + }); mockNetworkDataRequest(isRefresh: true); } } diff --git a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart index 0f5ef873..eb6792c1 100755 --- a/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart +++ b/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/view/sendElectronicKeyView_logic.dart @@ -17,6 +17,9 @@ import 'package:star_lock/tools/regularExpression.dart'; import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/showTipView.dart'; import 'package:star_lock/tools/storage.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; + +import '../../../../../../blue/blue_manage.dart'; class SendElectronicKeyViewLogic extends BaseGetXController { SendElectronicKeyViewLogic(this.type); @@ -180,7 +183,15 @@ class SendElectronicKeyViewLogic extends BaseGetXController { idCardNumber: state.isRequireAuth.value == true ? state.idCardController.text : ''); + final String getMobile = (await Storage.getMobile())!; if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('add_electronic_key', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'add_electronic_key_result':'成功', + }); + emailOrPhone = state.emailOrPhoneController.text; state.createUser.value = 0; state.isSendSuccess = true; @@ -190,6 +201,13 @@ class SendElectronicKeyViewLogic extends BaseGetXController { update(); eventBus.fire(ElectronicKeyListRefreshUI()); } else { + UmengCommonSdk.onEvent('add_electronic_key', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'add_electronic_key_result':'${entity.errorCode}--${entity.errorMsg}', + }); + emailOrPhone = null; if (entity.errorCode == 425) { //用户未注册 diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index 6b8cdfde..9b72bfde 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -13,6 +13,7 @@ import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart'; import 'package:star_lock/tools/bugly/bugly_tool.dart'; import 'package:star_lock/tools/throttler.dart'; import 'package:star_lock/widget/permission/permission_dialog.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; @@ -25,6 +26,7 @@ import '../../../blue/sender_manage.dart'; import '../../../network/api_repository.dart'; import '../../../tools/baseGetXController.dart'; import '../../../tools/commonDataManage.dart'; +import '../../../tools/dateTool.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/storage.dart'; import '../lockOperatingRecord/keyOperationRecord_entity.dart'; @@ -67,6 +69,16 @@ class LockDetailLogic extends BaseGetXController { upload: true ); + if(status != 6){ + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('open_lock', { + 'lock_name':state.keyInfos.value.lockName!, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'open_lock_result':'${reply.data}', + }); + } + switch (status) { case 0x00: //成功 @@ -360,7 +372,15 @@ class LockDetailLogic extends BaseGetXController { showBlueConnetctToastTimer( outTimer: 20, - action: () { + action: () async { + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('open_lock', { + 'lock_name':state.keyInfos.value.lockName!, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'open_lock_result':'超时', + }); + resetOpenDoorState(); blueManageDisconnect(); BuglyTool.uploadException( @@ -396,6 +416,14 @@ class LockDetailLogic extends BaseGetXController { detail: '蓝牙连接失败,断开连接, 开锁失败--OpenLockCommand:$command', upload: true ); + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('open_lock', { + 'lock_name':state.keyInfos.value.lockName!, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'open_lock_result':'断开连接', + }); + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart index 2a38d64c..3ccbe408 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/scheduler.dart'; @@ -5,7 +6,7 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart'; -import 'package:star_lock/tools/showTipView.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_protocol/io_factoryDataReset.dart'; @@ -19,6 +20,7 @@ import '../../../../blue/sender_manage.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../../tools/commonDataManage.dart'; +import '../../../../tools/dateTool.dart'; import '../../../../tools/eventBusEventManage.dart'; import '../../../../tools/storage.dart'; import 'checkingInInfoData_entity.dart'; @@ -568,7 +570,16 @@ class LockSetLogic extends BaseGetXController { final LockListInfoEntity entity = await ApiRepository.to.deletOwnerLockData( lockId: state.lockSetInfoData.value.lockId!, ); + final String getMobile = (await Storage.getMobile())!; if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('delet_lock', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'delet_type':'lock', + 'delet_lock_result':'成功', + }); + BlueManage().connectDeviceMacAddress = ''; final bool isOnlyOneData = state.isOnlyOneData.value == true; await Future.delayed(const Duration(milliseconds: 200)) @@ -578,6 +589,14 @@ class LockSetLogic extends BaseGetXController { SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); }); + }else{ + UmengCommonSdk.onEvent('delet_lock', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'delet_type':'lock', + 'delet_lock_result':'${entity.errorCode}--${entity.errorMsg}', + }); } } @@ -588,7 +607,16 @@ class LockSetLogic extends BaseGetXController { keyId: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), includeUnderlings: state.deleteAdministratorIsHaveAllData.value == true ? 1 : 0); + final String getMobile = (await Storage.getMobile())!; if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('delet_lock', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'delet_type':'key', + 'delet_lock_result':'成功', + }); + BlueManage().connectDeviceMacAddress = ''; final bool isOnlyOneData = state.isOnlyOneData.value == true; await Future.delayed(const Duration(milliseconds: 200)) @@ -598,6 +626,14 @@ class LockSetLogic extends BaseGetXController { SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); }); + }else{ + UmengCommonSdk.onEvent('delet_lock', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'delet_type':'key', + 'delet_lock_result':'${entity.errorCode}--${entity.errorMsg}', + }); } } diff --git a/lib/mine/addLock/saveLock/saveLock_logic.dart b/lib/mine/addLock/saveLock/saveLock_logic.dart index 68232ed1..2074d793 100755 --- a/lib/mine/addLock/saveLock/saveLock_logic.dart +++ b/lib/mine/addLock/saveLock/saveLock_logic.dart @@ -6,6 +6,7 @@ import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_logic.dart'; import 'package:star_lock/mine/addLock/saveLock/entity/SaveLockEntity.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; @@ -17,6 +18,7 @@ import '../../../blue/sender_manage.dart'; import '../../../network/api_repository.dart'; import '../../../tools/baseGetXController.dart'; import '../../../tools/commonDataManage.dart'; +import '../../../tools/dateTool.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/storage.dart'; import 'saveLock_state.dart'; @@ -404,8 +406,14 @@ class SaveLockLogic extends BaseGetXController { if (entity.errorCode!.codeIsSuccessful) { state.lockId = entity.data!.lockId!; + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('save_lock_result', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'save_lock_result':'成功', + }); backAction(); - // await senderCustomPasswords(); // BlueManage().disconnect(BlueManage().connectDeviceMacAddress); @@ -413,6 +421,14 @@ class SaveLockLogic extends BaseGetXController { // Get.close(state.isFromMap == 1 ? 5 : 6); } else { state.sureBtnState.value = 0; + + final String getMobile = (await Storage.getMobile())!; + UmengCommonSdk.onEvent('save_lock_result', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'save_lock_result':'${entity.errorCode}--${entity.errorMsg}', + }); } } diff --git a/lib/mine/mineSet/mineSet/mineSet_logic.dart b/lib/mine/mineSet/mineSet/mineSet_logic.dart index d5da7a22..80449534 100755 --- a/lib/mine/mineSet/mineSet/mineSet_logic.dart +++ b/lib/mine/mineSet/mineSet/mineSet_logic.dart @@ -13,12 +13,14 @@ import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/versionUndate/versionUndate_entity.dart'; +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; import '../../../talk/udp/udp_help.dart'; +import '../../../tools/dateTool.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/store_service.dart'; import '../../../translations/app_dept.dart'; @@ -128,7 +130,15 @@ class MineSetLogic extends BaseGetXController { } }); final LoginEntity entity = await ApiRepository.to.userLogout(deviceld: getPushDeviceID); + final String getMobile = (await Storage.getMobile())!; if (entity.errorCode!.codeIsSuccessful) { + UmengCommonSdk.onEvent('logout', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'logout_result':'成功', + }); + UdpHelp().closeUDP(); logOut(); @@ -138,6 +148,13 @@ class MineSetLogic extends BaseGetXController { BlueManage().disconnect(); XSJPushProvider().initLocalNotification(isCancelLocalPush: true); Get.offNamedUntil(Routers.starLockLoginPage, (Route route) => false); + }else{ + UmengCommonSdk.onEvent('logout', { + 'lock_name':BlueManage().connectDeviceName, + 'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!, + 'date':DateTool().getNowDateWithType(1), + 'logout_result':'${entity.errorCode}--${entity.errorMsg}', + }); } } diff --git a/pubspec.yaml b/pubspec.yaml index 27ff15dc..eeaf352d 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -230,7 +230,7 @@ dependencies: # audio_service: ^0.18.12 app_settings: ^5.1.1 flutter_local_notifications: ^17.0.0 - fluwx: ^4.5.5 + fluwx: 4.5.5 system_settings: ^2.0.0 expandable: ^5.0.1 colorfilter_generator: ^0.0.8 @@ -240,6 +240,7 @@ dependencies: flutter_bugly: ^1.0.2 open_filex: ^4.4.0 + umeng_common_sdk: 1.2.7 dependency_overrides: #强制设置google_maps_flutter_ios 为 2.5.2