Flutter经验整理

2023-11-07

flutter经验总结,稍候会整理进简历

    1:使用flutter_screenutil做跨平台适配时,ios页面个别细节需要微调整
    2: 再IOS平台上底部弹窗需要使用SafeArea包裹,避免出现弹窗底部按钮和导航栏遮挡
    3:优先考虑使用update['id']这种方式局部刷新页面
    4:主题的更换,使用一个类来实现,主要涉及颜色、图片等资源,避免到处传参
    5:发挥flutter跨平台的最大特性,个别特殊功能使用PlatformView或者Channel和原生交互实现
    6:
    
 flutter异常捕获(最终还是通过原生上报)

         1:原生接入友盟统计 2:在flutter和原生进行channle交互配置 3:在flutter中通过FlutterError.onError,提供⼀个⾃定义的错误处理回调 4:最终还是通过原生上报

MobclickAgent.reportError

//全局异常的捕捉
class AppCatchError {
  run(Widget app) {
    ///Flutter 框架异常
    FlutterError.onError = (FlutterErrorDetails details) async {
      ///线上环境
      if (BaseUrl.DEBUG == false) {
        Zone.current.handleUncaughtError(details.exception, details.stack!);
      } else {
        //开发期间 print
        FlutterError.dumpErrorToConsole(details);
      }
    };

    runZonedGuarded(() {
      //受保护的代码块
      runApp(app);
    }, (error, stack) => catchError(error, stack));
  }

  ///对搜集的 异常进行处理  上报等等
  catchError(Object error, StackTrace stack) {
    // print("AppCatchError>>>>>>>>>>: $kReleaseMode"); //是否是 Release版本
    // print('AppCatchError message:$error,stack$stack');

    if (BaseUrl.DEBUG == true) {
      // if (kDebugMode) {
      // ignore: avoid_print
      print(
          '\n\n\n\n❌❌❌❌❌❌❌❌❌❌全局异常捕获❌❌❌❌❌❌\n									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter经验整理 的相关文章

随机推荐