flutter 路由 生成给 native 使用

发现问题:

发现

-> 目前使用flutter 开发 大部分应该是混合工程,一般会把 flutter 打包成为 aar,native 依赖使用,通过路由进行原生启动flutter 页面.

问题

-> flutter 端这边注册 register(‘main/login’,xxxMoudule()), 打成 aar,
原生这边依赖 启动 flutter 页面 navigator.push(‘main/login’). 这样的情况写起来也麻烦,也要不断确认 增加了bug的风险.

解决
-> 通过 flutter 这边 routerCofig 类似配置文件生成 ios/android 这样的代码。

实现方案:

  1. 新建一flutter_plugin(xxxxPlugin) 并且依赖于 将要打为aar项目。
  2. 定义 能够执行 flutter pub run xxx 项目
    1. 阅读 https://dart.dev/tools/dart-run 弄清楚 如何通过命令启动 main()
    2. 通过 ast 解析 routerConfig 文件字段
    3. 通过主项目.dart/package_config.json 得到 xxxxPlugin 插件的存放位置
    4. 把解析到字段 放入到模板代码 合成文件 放入到 xxxxPlugin ios/android目录下
  3. 打包 aar (项目已经支持 远程依赖和本地依赖)

效果:

dart:

在这里插入图片描述

android

在这里插入图片描述

Flutter 启动页面(Splash Screen)是指应用程序在启动过程中显示的第一个界面,通常用于展示品牌标识或加载必要的资源。为了创建一个 Flutter 应用程序的启动页面,你可以通过以下几种方式来实现: ### 1. 使用 `flutter_native_splash` 插件 这是最简单的方式之一,只需要配置几行代码即可自动生成适用于 Android 和 iOS 的启动画面。 首先,在 `pubspec.yaml` 文件添加依赖项: ```yaml dev_dependencies: flutter_test: sdk: flutter flutter_native_splash: ^0.2.7+1 # 确保版本是最新的 ``` 然后运行命令安装插件并生成默认样式的启动页: ```bash dart run flutter_native_splash:create ``` 接下来可以根据需要调整图片位置、颜色等属性;详情参见[官方文档](https://pub.dev/packages/flutter_native_splash)。 ### 2. 自定义 XML (Android) 对于更复杂的定制化需求,则可以考虑直接编辑平台特定文件来进行设置。例如,在 Android 上你需要修改项目的 res/drawable 文件夹下的 xml 文件来指定背景色及 logo 图像。 #### 修改 app/src/main/res/values/styles.xml 设置主题样式: ```xml <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> <item name="android:windowBackground">@drawable/splash_screen</item> </style> ``` #### 创建 drawable 目录下 splash_screen.xml 定义启动屏布局元素: ```xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 背景色 --> <item android:drawable="#ffffff"/> <!-- Logo 居中显示 --> <item > <bitmap android:gravity="center" android:src="@mipmap/ic_launcher"/> </item> </layer-list> ``` 最后别忘了更新 `MainActivity.java` 或 Kotlin 版本里的 manifest 来引用新设定的主题。 ### 3. 动态切换至主页 无论采用哪种方案构建静态启动屏幕之后,都需要确保当所有初始化操作完成后能够平滑过渡到主应用视图上。这一般是在 Dart 中完成的 - 例如可以在 main 函数里延时一小段时间再 Navigator.push 替换当前路由为首页组件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值