删除埋点,im和客服

This commit is contained in:
谢宇宁
2026-10-08 20:10:40 +07:00
parent 92816047c6
commit 5064de7399
133 changed files with 220 additions and 1405 deletions
+4 -21
View File
@@ -1,7 +1,5 @@
import 'dart:async';
import 'package:analytics_sdk/analytics_sdk.dart';
import 'package:analytics_sdk/widget/global_click_wrapper.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -13,8 +11,6 @@ import 'package:jydj/hj_page/pre_sale/pre_sale_provider.dart';
import 'package:jydj/hj_page/splash/splash_page.dart';
import 'package:jydj/hj_utils/codec_support.dart';
import 'package:jydj/hj_utils/video_view_type.dart';
import 'package:jydj/im_manager/im_ad/im_ad_provider.dart';
import 'package:jydj/im_manager/im_notification.dart';
import 'package:jydj/routers/router_map.dart';
import 'package:visibility_detector/visibility_detector.dart';
import 'package:jydj/tools_base/debug_log.dart';
@@ -23,7 +19,6 @@ import 'package:jydj/tools_base/headphone_monitor.dart';
import 'package:jydj/tools_base/net/http_manager.dart';
import 'package:jydj/tools_base/video_download/video_download_manager.dart';
import 'package:jydj/track_event_manager/device_service.dart';
import 'package:jydj/track_event_manager/track_manager.dart';
import 'package:jydj/track_event_manager/track_session.dart';
// 只引 OKToast 挂载所需符号:oktoast 也导出同名 showToast,全量 import 会与自家 toast.dart 冲突
import 'package:oktoast/oktoast.dart' show OKToast, ToastPosition;
@@ -35,7 +30,6 @@ import 'package:ume_kit_ui/ume_kit_ui.dart';
import 'alert/vip_guide/guide_countdown_dialog.dart';
import 'assets_tool/app_colors.dart';
import 'config/config.dart';
import 'hj_page/home/provider/home_update_marker_provider.dart';
import 'hj_page/main_page/provider/msg_provider.dart';
import 'hj_page/mine/mine_vip/vip_product_manager.dart';
@@ -47,7 +41,7 @@ void main() async {
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
// 可见性回调默认攒 500ms 才发,短视频切 tab 会拖半秒才静音;压到 100ms(听不出延迟)。
// 不设 0:那样滚动中每帧都回调,广告曝光(AdsItem)会跟着每帧注册一次 postFrame
// 不设 0:那样滚动中每帧都回调
VisibilityDetectorController.instance.updateInterval = const Duration(milliseconds: 100);
VideoDownloadManager.instance.init();
await lightKV.init(); //初始化本地存储(lightKV/MMKV),其余初始化都依赖它,必须最先
@@ -56,22 +50,13 @@ void main() async {
await Future.wait([
globalStore.init(), //获取密码
DeviceInfoService.init(), //获取设备信息
ImAdProvider().loadLocalAdIds(), //加载本地已点击 IM 广告记录
initVideoViewType(), //视频渲染方式:读本机持久化标记,决定 textureView/platformView
CodecSupport.init(), //H.265 硬解能力:查芯片能力 + 读本机禁用标记,决定选 265 还是回落 264
]);
await TrackSessionManager().onAppColdStart(); //初始化埋点sid(依赖 DeviceInfoService)
await TrackSessionManager().onAppColdStart(); //初始化请求头 sid(依赖 DeviceInfoService)
WidgetsBinding.instance.addObserver(_TrackLifecycleObserver());
PromoCountdown.reset(); //优惠倒计时(场景3/4):app 启动时设定一次起点,全局仅此一次,进程存活期间自然倒数、不重置
HeadphoneMonitor.instance.start(); //耳机/蓝牙断开、来电等自动暂停视频,防止音频外放泄露隐私
//埋点SDK接入
addMappings(); //添加页面映射
await AnalyticsSdk.instance.init(
appId: Config.appId,
encryptedConfig: null, // 服务端下发
deviceId: DeviceInfoService.deviceId, // Android IMEI/OAID、iOS IDFV 等
appVersion: Config.innerVersion,
);
if (kReleaseMode) {
runApp(const MyApp());
} else {
@@ -127,8 +112,6 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider.value(value: MineMsgProvider()), //消息中心红点,新人倒计时
ChangeNotifierProvider.value(value: HomeUpdateMarkerProvider()), //首页最新/今日最新红点
ChangeNotifierProvider.value(value: vipProductManager), //会员卡列表统一数据源
ChangeNotifierProvider.value(value: ImAdProvider()), //IM 广告
ChangeNotifierProvider.value(value: ImMsgProvider()), //IM 私信未读红点
ChangeNotifierProvider.value(value: LimitTimeProvider()), //限时活动
],
child: GetMaterialApp(
@@ -137,7 +120,7 @@ class MyApp extends StatelessWidget {
// 只能写在这,写 main() 里会被 GetMaterialApp.build 覆盖回 full。
// 前提是所有 logic 都走 GetBuilder(init:)——手写 Get.put 的没人回收,要自己 Get.delete
smartManagement: SmartManagement.onlyBuilder,
navigatorObservers: [routeObserver, AnalyticsSdk.instance.pageObserver],
navigatorObservers: [routeObserver],
debugShowCheckedModeBanner: true,
initialRoute: SplashPage.routeName,
getPages: AppRoutes.routePages,
@@ -185,7 +168,7 @@ class MyApp extends StatelessWidget {
radius: 8,
textStyle: const TextStyle(color: Colors.white, fontSize: 14),
textPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: GlobalClickWrapper(child: child!),
child: child!,
),
),
);