积分329 / 贡献0

提问1答案被采纳1文章24

[经验分享] Flutter适配OpenHarmony方案预研——交互 原创

诚迈-陆志刚 显示全部楼层 发表于 6 天前
Flutter适配OpenHarmony方案预研——交互

(文章已获得诚迈科技资深研发工程师-廖锦锐授权)
前文指路:
[color=var(--hl_color) !important]Flutter适配OpenHarmony方案预研——创建(上) - 文章 OpenHarmony开发者论坛
[color=var(--hl_color) !important]Flutter适配OpenHarmony方案预研——创建(下) - 文章 OpenHarmony开发者论坛

Flutter适配OpenHarmony方案预研——集成 - 文章 OpenHarmony开发者论坛

MethodChannel
特性:支持数据双向传递,有返回值。
通信机制:通过MethodChannel,Flutter可以发送方法调用请求到Native端,Native端处理完请求后,可以返回结果给Flutter

EventChannel
特性:单向通信方式,从Native向Flutter发送数据,Flutter无法返回数据给Native
通信机制:Native端通过EventChannel向Flutter发送数据流,Flutter端接收并处理这些数据。

BasicMessageChannel
特性:用于传递字符串和半结构化的信息(如JSON),支持数据双向传递,有返回值。
通信机制:通过BasicMessageChannel,Native和Flutter可以相互发送和接收消息,并可以回复消息。

在flutter端定义MethodChannel 通道
final _platform = const MethodChannel('samples.flutter.dev/battery');
图片1.png
Harmonyos 端定义同一名称的MethodChannel,并通过onMethodCall 去监听flutter端传来的方法名和数据,处理后result.success(level)回调数据给flutter端
图片2.png
在flutter端定义BasicMessageChannel 通道
final _basicChannel = const BasicMessageChannel("samples.flutter.dev/basic_channel",StandardMessageCodec());
图片3.png
Harmonyos 端定义同一名称的BasicMessageChannel,调用setMessageHandler方法,在onMessage方法回调中接收flutter端传来的message数据,通过relpy 回调数据给flutter端
图片4.png
在flutter端定义EventChannel 通道
final _eventChannel = const EventChannel(‘samples.flutter.dev/event_channel’);
创建流数据监听
图片5.png
在Harmonyos 端定义同一名称的EventChannel,调用setStreamHandler方法,在调用onListen 通过EventSink 的success 方法,传递数据流给flutter端
图片6.png

常见问题参考文档

https://gitee.com/openharmony-sig/flutter_flutter

https://gitee.com/openharmony-si ... 6%8C%87%E5%AF%BC.md

https://docs.qq.com/sheet/DVVJDWWt1V09zUFN2?tab=BB08J2


©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2025  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部