# guang-app **Repository Path**: wugemu_admin_admin/guang-app ## Basic Information - **Project Name**: guang-app - **Description**: Flutter 项目 - **Primary Language**: Dart - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-27 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # guang-app # flutter 欧洲导购社区app with flutter # 构建Web包:flutter build web --web-renderer html --release # 构建安卓APP: Android Studio / Build / Flutter / Build Apk 或者 flutter build apk --no-tree-shake-icons # Firebase 调试事件 ``` adb shell setprop debug.firebase.analytics.app com.starblink.android.guang // 开始 adb shell setprop debug.firebase.analytics.app .none. // 结束 ``` ## 发布web ``` 1.修改pubspec.yaml中的版本号 如version: 0.0.2+12 2.执行 flutter build web --web-renderer html --release 3.2成功之后在bulid文件里有个web文件,然后到guang_share里替换对应的web文件,需要注意的是guang_share里test_and_dev是测试和开发分支 pub是生产分支,特别注意发布的环境 4.打开guang_share切换到tools目录 运行:dart run bin/tools.dart prepare_testOrDev 完成最终发布前的CDN配置改动 会生成一个这样的文件1652256047124.main.dart.js,然后提交修改 5.去对象存储后台(oss-browser),把web目录下的 asset文件夹、.*main.dart.js 上传到 Bucket:dev-guang-share 下面 6.去阿里云流水线,手动运行“guang_share-dev-test” 部署到开发与测试环境 ``` ## 关于监听当前widget的push或者pop的状态处理业务使用说明(RouteAwareCallback) ``` 1.当前的widget添加with RouteAwareCallback 2.使用RouteAwareWidget 3.使用push和pop的方法 @override void didPopNext(BuildContext context) { super.didPopNext(context); print('didPopNext'); } @override void didPush(BuildContext context) { super.didPush(context); print('didPush'); } @override void didPop(BuildContext context) { super.didPop(context); print('didPop'); } void didPushNext(BuildContext context) { super.didPushNext(context); print('didPushNext'); } didPush + didPopNext = iOS的viewWillAppear 具体例子说明: class MineHeaderWidget extends StatefulWidget { const MineHeaderWidget(); @override _MineHeaderWidgetState createState() => _MineHeaderWidgetState(); } class _MineHeaderWidgetState extends State with RouteAwareCallback{ @override void didPopNext(BuildContext context) { super.didPopNext(context); print('didPopNext'); } @override void didPush(BuildContext context) { super.didPush(context); print('didPush'); } @override void didPop(BuildContext context) { super.didPop(context); print('didPop'); } void didPushNext(BuildContext context) { super.didPushNext(context); print('didPushNext'); } @override Widget build(BuildContext context){ return RouteAwareWidget( callback:this, child:Container() ) } } ``` ## JSON 序列化 ``` flutter pub run build_runner build --delete-conflicting-outputs dependencies: json_serializable: ^6.2.0 json_annotation: ^4.5.0 dev_dependencies: build_runner: ^2.1.11 json_serializable: ^6.2.0 ``` ## 从GitHub导入代码库 ``` 账号:guolidong177 token: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 启用日期:2023.1.12 ``` ## GraphQL 自动化 ``` 参考:https://pub.dev/packages/graphql_codegen $ flutter pub add --dev graphql_codegen build_runner $ flutter pub add graphql graphql_flutter flutter_hooks $ dart run build_runner build ```