Blame view

lib/main.dart 3.2 KB
4847e3dc   liangchengyou   feat:添加设备方向处理
1
  import 'dart:io';
1e7094e3   liangchengyou   feat:适配ipad
2
  
3f45a30f   吴启风   feat:集成友盟APM(flut...
3
  import 'package:flutter/foundation.dart';
2a29701f   liangchengyou   feat:提交代码
4
  import 'package:flutter/material.dart';
4847e3dc   liangchengyou   feat:添加设备方向处理
5
  import 'package:flutter/services.dart';
3f45a30f   吴启风   feat:集成友盟APM(flut...
6
7
  import 'package:package_info_plus/package_info_plus.dart';
  import 'package:umeng_apm_sdk/umeng_apm_sdk.dart';
2a29701f   liangchengyou   feat:提交代码
8
  import 'package:wow_english/app/app.dart';
2a29701f   liangchengyou   feat:提交代码
9
  
3f45a30f   吴启风   feat:集成友盟APM(flut...
10
11
12
13
14
15
16
17
18
19
20
  // void main() {
  //   ///设置设备默认方向
  //   WidgetsFlutterBinding.ensureInitialized();
  //   if (Platform.isAndroid) {
  //     SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( //设置状态栏透明
  //       statusBarColor: Colors.transparent,
  //     ));
  //   }
  //   runApp(const App());
  // }
  
cc3b183a   liangchengyou   feat:ios启动图/logo
21
  void main() {
4847e3dc   liangchengyou   feat:添加设备方向处理
22
    ///设置设备默认方向
cc3b183a   liangchengyou   feat:ios启动图/logo
23
    if (Platform.isAndroid) {
1dc46cf7   吴启风   feat:绘本ui
24
25
26
      SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( //设置状态栏透明
        statusBarColor: Colors.transparent,
      ));
4847e3dc   liangchengyou   feat:添加设备方向处理
27
    }
3f45a30f   吴启风   feat:集成友盟APM(flut...
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  
    final UmengApmSdk umengApmSdk = UmengApmSdk(
      name: "",
      bver: "",
  
      // 是否开启SDK运行时日志输出
      enableLog: !kReleaseMode,
  
      // 您使用的flutter版本,默认为空,为方便定位访问,建议配置
      flutterVersion: '3.13.2',
  
      // 您使用的flutter引擎版本
      engineVersion: 'ff5b5b5fa6',
  
      // 开启监测页面帧率(默认关闭) 版本 v2.1.3 可支持
      enableTrackingPageFps: !kReleaseMode,
  
      // 开启监测页面性能(默认关闭)版本 v2.1.3 可支持
      enableTrackingPagePerf: !kReleaseMode,
  
      // 带入继承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;
    }
2a29701f   liangchengyou   feat:提交代码
88
  }