美文网首页
使用BasicMessageChannel与原生端交互,iOS端

使用BasicMessageChannel与原生端交互,iOS端

作者: zaq1125 | 来源:发表于2023-11-26 09:50 被阅读0次

最近初学Flutter,在练习使用BasicMessageChannel与原生端交互的时候,遇到了一个奇怪的问题。Flutter端与iOS端交互的时候,app会闪退。

经过排查,发现问题出现在codec上。
当在Flutter端,使用

static const _channel = BasicMessageChannel("messageChannel", StringCodec());

对应在iOS端应该使用

let channel = FlutterBasicMessageChannel(name:"messageChannel", binaryMessenger: controller.binaryMessenger, codec: FlutterStringCodec())

只有Flutter端使用的是StandardMessageCodec,iOS中的codec才可以不传值。
即:

static const _channel = BasicMessageChannel("messageChannel", StandardMessageCodec());
let channel = FlutterBasicMessageChannel(name:"messageChannel", binaryMessenger: controller.binaryMessenger)

综合来说,BasicMessageChannel的使用就是注意两点,一个是Channel中name的名字要一致,另外一个就是codec也得一致。如此才能正常通信。

相关文章

网友评论

      本文标题:使用BasicMessageChannel与原生端交互,iOS端

      本文链接:https://www.haomeiwen.com/subject/zyrawdtx.html