HarmonyOS鸿蒙Next中flutter使用PlatformView如何承接creationParams传递的参数

HarmonyOS鸿蒙Next中flutter使用PlatformView如何承接creationParams传递的参数 按照官方示例,在 flutter 层为OhosView 设置了 creationParams: const <String, dynamic>{‘initParams’: ‘hello world’}

但是并没有看到如何在鸿蒙原生层获取解析这个参数

2 回复

在HarmonyOS Next中使用Flutter PlatformView时,可通过HarmonyPlatformView类处理creationParams参数。在onCreate方法中,使用HarmonyCoregetStringParamgetIntParam等方法从creationParams中提取参数,并传递给原生组件进行初始化。参数以键值对形式传递,确保Flutter侧与HarmonyOS侧参数键名一致。

更多关于HarmonyOS鸿蒙Next中flutter使用PlatformView如何承接creationParams传递的参数的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在HarmonyOS Next中,Flutter的PlatformView通过creationParams传递参数时,需要在鸿蒙原生侧通过HarmonySurfaceViewonCreate方法接收。具体步骤如下:

  1. Flutter侧:创建PlatformView时设置creationParams,如:

    creationParams: const <String, dynamic>{'initParams': 'hello world'},
    creationParamsCodec: const StandardMessageCodec(),
    
  2. 鸿蒙原生侧:在自定义的HarmonySurfaceView中重写onCreate方法,通过getCreationParams()获取参数:

    [@Override](/user/Override)
    public void onCreate() {
        Object params = getCreationParams();
        if (params instanceof Map) {
            String initParams = (String) ((Map) params).get("initParams");
            // 使用initParams进行后续处理
        }
    }
    

注意确保creationParamsCodec使用StandardMessageCodec(默认),以保证数据序列化一致。参数类型需匹配,避免类型转换错误。

回到顶部