import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:umeng_apm_sdk/umeng_apm_sdk.dart'; import 'package:wow_english/app/app.dart'; import 'common/request/basic_config.dart'; // void main() { // ///设置设备默认方向 // WidgetsFlutterBinding.ensureInitialized(); // if (Platform.isAndroid) { // SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( //设置状态栏透明 // statusBarColor: Colors.transparent, // )); // } // runApp(const App()); // } void main() { ///设置设备默认方向 if (Platform.isAndroid) { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( //设置状态栏透明 statusBarColor: Colors.transparent, )); } final UmengApmSdk umengApmSdk = UmengApmSdk( name: "", bver: "", // 是否开启SDK运行时日志输出 enableLog: BasicConfig.isTestDev, // 您使用的flutter版本,默认为空,为方便定位访问,建议配置 flutterVersion: '3.13.2', // 您使用的flutter引擎版本 engineVersion: 'ff5b5b5fa6', // 开启监测页面帧率(默认关闭) 版本 v2.1.3 可支持 enableTrackingPageFps: BasicConfig.isTestDev, // 开启监测页面性能(默认关闭)版本 v2.1.3 可支持 enableTrackingPagePerf: BasicConfig.isTestDev, // 带入继承ApmWidgetsFlutterBinding的覆写和初始化方法, 可用于自定义监听应用生命周期 // 确保去掉原有的WidgetsFlutterBinding.ensureInitialized() ,以免出现重复初始化绑定的异常造成无法正常初始化,SDK内部已通过initFlutterBinding入参带入继承的WidgetsFlutterBinding实现初始化操作 initFlutterBinding: MyApmWidgetsFlutterBinding.ensureInitialized, // 抛出异常事件 onError: (exception, stack) { debugPrint(exception.toString()); }, ); umengApmSdk.init(appRunner: (observer) async { // 确保去掉原有的WidgetsFlutterBinding.ensureInitialized() ,以免出现重复初始化绑定的异常造成无法正常初始化,SDK内部已通过initFlutterBinding入参带入继承的WidgetsFlutterBinding实现初始化操作 // 依赖ensureInitialized()初始化的代码可在此调用 // 需要异步获取设置应用名称和版本号可在此回调中操作 // SDK实例化的设置可先将name和bver 为 "",然后通过以下方式进行设置 PackageInfo packageInfo = await PackageInfo.fromPlatform(); String packageName = packageInfo.packageName; String buildNumber = packageInfo.buildNumber; String version = packageInfo.version; umengApmSdk.name = packageName; umengApmSdk.bver = '$version+$buildNumber'; return App(observer); }); } //ApmWidgetsFlutterBinding的覆写和初始化方法 class MyApmWidgetsFlutterBinding extends ApmWidgetsFlutterBinding { @override void handleAppLifecycleStateChanged(AppLifecycleState state) { // 添加自己的实现逻辑 debugPrint('AppLifecycleState changed to $state'); super.handleAppLifecycleStateChanged(state); } static WidgetsBinding? ensureInitialized() { MyApmWidgetsFlutterBinding(); return WidgetsBinding.instance; } }