0
点赞
收藏
分享

微信扫一扫

Flutter与鸿蒙原生交互

Flutter与鸿蒙原生交互

一.MethodChannel

1.flutter端代码

  • 创建MethodChannel通道
  • 调用平台创建方法接收回调参数

//创建通道 自定义通道名字 flutter.ohos.example/test
final _platform = const MethodChannel('flutter.ohos.example/test');

//调用 平台创建的方法接收回调
final result = await _platform.invokeMethod<String>('getTestString');

2.ohos端代码

  • 继承FlutterPlugin实现onAttachedToEngine方法
  • 创建MethodChannel实例(名字需要与flutter端保持一致)
  • onMethodCall回调中监听回调方法(名字需要与flutter端保持一致)
  • 通过MethodResult回传参数

export default class TestPlugin implements FlutterPlugin {// 继承FlutterPlugin
  private channel?: MethodChannel;
  
  onAttachedToEngine(binding: FlutterPluginBinding): void {
  // 创建通道实例
    this.channel = new MethodChannel(binding.getBinaryMessenger(), "flutter.ohos.example/test");
    // 设置回调,调用具体的实现和传统flutter方法一致
    this.channel.setMethodCallHandler({
      onMethodCall(call: MethodCall, result: MethodResult) {
        switch (call.method) {
          case "getTestString":
          	//回调数据到flutter监听层
            result.success("test string");
            break;
          default:
            result.notImplemented();
            break;
        }
      }
    })
  }
}

举报

相关推荐

0 条评论