HarmonyOS 鸿蒙Next 原生的Ark UI,如何路由到不同的Flutter Page

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 原生的Ark UI,如何路由到不同的Flutter Page

原生1级页面对Flutter编写的2级页面之间的路由和传参

1.Flutter是在main.dart中以@pragma(‘vm:entry-point’)分别注册不同的子业务模块入口, 然后由原生用router的形式case by case地启动(如Android封装了XXXFlutterActivity,接收上层页面的routeUrl, 传递到本页面的FlutterEngine,然后再交由FlutterEngine渲染出FlutterView进行UI展示)。

2.目前gitee上flutter_flutter,没有(1)中方案的鸿蒙端Example(只有一个简单的FlutterAbility启动,然后不知为何就直接All In FlutterUI了), 希望来一个比较详细的实例Demo(有对Channel 、EntryPoint、 Engine、 Route等概念的详细代码描述),至少可以讲述清楚原生的Ark UI, 如何路由到不同的Flutter Page。

2 回复
在鸿蒙应用中添加Flutter页面以及使用Flutter Channel能力,可参考:

https://gitee.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/README.md

在HarmonyOS鸿蒙Next原生开发环境中,使用Ark UI框架进行页面路由到不同的Flutter Page,可以通过以下步骤实现:

  1. 页面定义:首先,确保你已经在Ark UI中定义了初始页面,并在Flutter侧创建了目标页面。Flutter页面需要通过Flutter模块集成到Ark UI项目中。

  2. 路由配置:在Ark UI中,利用Ability(能力)的概念来管理页面跳转。你需要配置Ability路由,确保能够识别并跳转到Flutter页面。这通常涉及到在config.json中配置Flutter页面的Ability信息。

  3. 页面跳转:使用Ark UI提供的页面跳转API(如startAbility),指定目标Flutter页面的Ability信息(如包名、Ability名称等)来启动Flutter页面。

  4. 参数传递:如果需要在页面间传递参数,可以通过Ability的Intent机制来实现。

  5. Flutter页面接收:在Flutter页面中,通过Flutter Engine接收并处理从Ark UI传递过来的参数。

请注意,具体实现细节可能因项目配置和版本差异而有所不同。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部