美文网首页
使用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