面试题答案
一键面试主要方式及工作流程
- MethodChannel
- 工作流程:在Flutter端创建
MethodChannel
实例,通过invokeMethod
方法向原生(引擎层)发送消息,消息携带方法名和参数。原生端根据MethodChannel
注册的名称监听消息,接收到消息后,根据方法名调用相应的处理逻辑,并将处理结果通过MethodChannel
返回给Flutter端,Flutter端在invokeMethod
的Future
回调中接收结果。
- 工作流程:在Flutter端创建
- EventChannel
- 工作流程:Flutter端创建
EventChannel
实例,使用receiveBroadcastStream
方法监听来自原生(引擎层)的事件流。原生端通过EventChannel
向Flutter端发送事件数据,只要有新的事件发生,原生端就可以将数据通过EventChannel
推送给Flutter端,Flutter端注册的监听会收到这些事件数据并进行处理。
- 工作流程:Flutter端创建
- BasicMessageChannel
- 工作流程:Flutter端和原生(引擎层)都创建
BasicMessageChannel
实例。Flutter端使用send
方法发送消息,消息可以是任意可编码的数据类型。原生端监听BasicMessageChannel
,接收到消息后进行处理,并将处理结果通过BasicMessageChannel
返回给Flutter端,Flutter端在send
方法的Future
回调中获取结果。
- 工作流程:Flutter端和原生(引擎层)都创建