ネイティブアプリの一部をflutter化したとき、ネイティブコードとflutter間でやり取りするには FlutterMethodChannel
を使います。
ネイティブ側とflutter側でお互いに FlutterMethodChannel を作ってやり取りする形になります。
iOSでは [FlutterMethodChannel +methodChannelWithName:binaryMessenger:]
の binaryMessenger
に該当の FlutterViewController を渡せば良いようなのですが、macOSの FlutterViewController は FlutterBinaryMessenger プロトコルが実装されていないので指定できません。
ソースを辿ったところ、 FlutterEngine
の方に実装されているようなので、 flutterViewController.engine as! FlutterBinaryMessenger
のように渡すことができます。