Commit 27dad3d1d7e0bb868fbb0006222bdaf0e0c34975
1 parent
8e547280
feat:集成友盟统计
Showing
6 changed files
with
22 additions
and
5 deletions
android/app/src/main/AndroidManifest.xml
... | ... | @@ -42,4 +42,5 @@ |
42 | 42 | <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
43 | 43 | <uses-permission android:name="android.permission.CAMERA" /> |
44 | 44 | <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> |
45 | + <uses-permission android:name="android.permission.READ_PHONE_STATE" /> | |
45 | 46 | </manifest> | ... | ... |
android/app/src/main/kotlin/com/kouyuxingqiu/wow_english/MainActivity.kt
... | ... | @@ -10,6 +10,7 @@ import com.gyf.immersionbar.BarHide |
10 | 10 | import com.gyf.immersionbar.ImmersionBar |
11 | 11 | import com.kouyuxingqiu.wow_english.methodChannels.GameMethodChannel |
12 | 12 | import com.kouyuxingqiu.wow_english.methodChannels.SingSoungMethodChannel |
13 | +import com.umeng.commonsdk.UMConfigure | |
13 | 14 | import io.flutter.embedding.android.FlutterActivity |
14 | 15 | |
15 | 16 | class MainActivity : FlutterActivity() { |
... | ... | @@ -22,6 +23,9 @@ class MainActivity : FlutterActivity() { |
22 | 23 | SingSoungMethodChannel(this, it) |
23 | 24 | GameMethodChannel(this, it) |
24 | 25 | } |
26 | + //UM日志打印 | |
27 | + UMConfigure.setLogEnabled(true) | |
28 | + UMConfigure.preInit(this, "663b66b0b3362515012f4ea5", "official") | |
25 | 29 | } |
26 | 30 | |
27 | 31 | override fun onResume() { | ... | ... |
lib/app/splash_page.dart
... | ... | @@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart'; |
6 | 6 | import 'package:flutter/material.dart'; |
7 | 7 | import 'package:flutter/services.dart'; |
8 | 8 | import 'package:limiting_direction_csx/limiting_direction_csx.dart'; |
9 | +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; | |
9 | 10 | import 'package:wow_english/common/core/app_config_helper.dart'; |
10 | 11 | import 'package:wow_english/common/core/user_util.dart'; |
11 | 12 | import 'package:wow_english/common/extension/string_extension.dart'; |
... | ... | @@ -67,7 +68,7 @@ class _TransitionViewState extends State<TransitionView> { |
67 | 68 | }*/ |
68 | 69 | bool isAggreementAccepted = AppConfigHelper.getAgreementAccepted(); |
69 | 70 | if (isAggreementAccepted) { |
70 | - pushNamedAndRemoveUntil(AppRouteName.home, (route) => false); | |
71 | + _initData(); | |
71 | 72 | } else { |
72 | 73 | showDialog( |
73 | 74 | context: context, |
... | ... | @@ -80,8 +81,7 @@ class _TransitionViewState extends State<TransitionView> { |
80 | 81 | webUrl: AppConsts.userPrivacyPolicyUrl, |
81 | 82 | leftTap: () { |
82 | 83 | AppConfigHelper.saveAgreementAccepted(true); |
83 | - pushNamedAndRemoveUntil( | |
84 | - AppRouteName.home, (route) => false); | |
84 | + _initData(); | |
85 | 85 | }, |
86 | 86 | rightTap: () { |
87 | 87 | // 退出应用 |
... | ... | @@ -95,6 +95,12 @@ class _TransitionViewState extends State<TransitionView> { |
95 | 95 | }); |
96 | 96 | } |
97 | 97 | |
98 | + ///初始化数据 | |
99 | + void _initData() { | |
100 | + UmengCommonSdk.initCommon("663b66b0b3362515012f4ea5", "663b66ecf32cc41105ae74b7", "official"); | |
101 | + pushNamedAndRemoveUntil(AppRouteName.home, (route) => false); | |
102 | + } | |
103 | + | |
98 | 104 | Future<void> fetchNecessaryData(String userToken, |
99 | 105 | {Completer<void>? completer}) async { |
100 | 106 | completer ??= Completer<void>(); | ... | ... |
lib/common/core/user_util.dart
1 | 1 | import 'dart:convert'; |
2 | 2 | |
3 | 3 | import 'package:flutter/foundation.dart'; |
4 | -import 'package:flutter/material.dart'; | |
5 | -import 'package:flutter/widgets.dart'; | |
4 | +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; | |
6 | 5 | import 'package:wow_english/common/core/sp_const.dart'; |
7 | 6 | import 'package:wow_english/models/user_entity.dart'; |
8 | 7 | import 'package:wow_english/route/route.dart'; |
... | ... | @@ -60,6 +59,7 @@ class UserUtil { |
60 | 59 | if (currentPageName != AppRouteName.splash) { |
61 | 60 | Navigator.of(AppRouter.context).pushNamedAndRemoveUntil(AppRouteName.login, (route) => false); |
62 | 61 | }*/ |
62 | + UmengCommonSdk.onProfileSignOff(); | |
63 | 63 | pushNamedAndRemoveUntil(AppRouteName.login, (route) => false, arguments: {'showPasswordPage': showPasswordLoginPage}); |
64 | 64 | } |
65 | 65 | ... | ... |
lib/common/request/dao/user_dao.dart
1 | +import 'package:umeng_common_sdk/umeng_common_sdk.dart'; | |
1 | 2 | import 'package:wow_english/common/core/user_util.dart'; |
2 | 3 | import 'package:wow_english/models/user_entity.dart'; |
3 | 4 | import 'package:wow_english/utils/log_util.dart'; |
... | ... | @@ -25,6 +26,7 @@ class UserDao { |
25 | 26 | data = await getUserInfo(); |
26 | 27 | data?.token = token; |
27 | 28 | UserUtil.saveUser(data); |
29 | + UmengCommonSdk.onProfileSignIn(data?.phoneNum ?? phoneNumber); | |
28 | 30 | } |
29 | 31 | return data; |
30 | 32 | } | ... | ... |
pubspec.yaml
... | ... | @@ -107,6 +107,10 @@ dependencies: |
107 | 107 | package_info_plus: ^4.2.0 |
108 | 108 | # 应用内更新 https://pub-web.flutter-io.cn/packages/flutter_app_update |
109 | 109 | flutter_app_update: ^3.0.4 |
110 | + # 友盟统计 https://pub-web.flutter-io.cn/packages/umeng_common_sdk | |
111 | + umeng_common_sdk: ^1.2.7 | |
112 | + # 友盟APM https://pub-web.flutter-io.cn/packages/umeng_apm_sdk | |
113 | + umeng_apm_sdk: ^2.2.1 | |
110 | 114 | |
111 | 115 | dev_dependencies: |
112 | 116 | build_runner: ^2.4.4 | ... | ... |