Android 项目嵌入Flutter Module(三) 交互

前言

上篇文章说到了android 嵌入flutter后,通过自定义Activity去继承FlutterActivity,然后重写部分方法去打开一个FlutterActivity去达到我们想要的效果。这篇文章我们讲一下两者如何交互,并且同样适用于纯Flutter项目中,Flutter 和原生交互

Android 项目嵌入Flutter Module(二)

主要是需要通过 PlantformChannel 进行交互,PlantformChannel 有三种类型,BasicMessageChannel,EventChannel,MethodChannel。具体可以看这篇文章深入理解Flutter Platform Channel

正文

BasicMessageChannel,主要用于双向传递字符串和半结构化消息传递消息

class BasicTestChannel(dartExecutor: DartExecutor) : MessageHandler<String> {
    private val tag: String = "BasicTestChannel"
    private val basicMessageChannel =
        BasicMessageChannel(dartExecutor, "com.zww/basic", StringCodec.INSTANCE)

    fun send(content: String, callback: Reply<String>) {
        basicMessageChannel.send(content, callback)
        Log.d(tag, "android发送flutter内容为: $content")
    }

    init {
        basicMessageChannel.setMessageHandler(this)
    }

    override fun onMessage(message: String?, reply: Reply<String>) {
        Log.d(tag, "android收到flutter的消息: $message")
        reply.reply("android收到flutter的消息,内容为$message")
    }

    fun removeMessageHandler() {
        basicMessageChannel.setMessageHandler(null)
    }
}

onMessage是收到Flutter发送的消息的回调,然后调用reply方法可以回复
send方法是发送消息到Flutter,第二个参数是Flutter收到消息回复的回调

使用

class MyFlutterActivity : FlutterActivity() {
    private lateinit var basicTestChannel: BasicTestChannel
    override fun provideFlu
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值