5

How do you access the FlutterBinaryMessenger in the AppDelegate on the Swift side of a MacOS Flutter application? In all the examples I have found, the AppDelegate is just a placeholder. You need to get the FlutterBinaryMessenger to instantiate a FlutterMethodChannel to actually communicate to the Dart side.

Tomerikoo
  • 18,379
  • 16
  • 47
  • 61
Boggle
  • 97
  • 1
  • 6

1 Answers1

4

In the current macOS template, the FlutterViewController (which lets you get the messenger, via .engine.binaryMessenger) is owned by the window, not the application. If you want to access it from the AppDelegate you'll need to wire up a connection between AppDelegate and MainFlutterWindow.

smorgan
  • 20,228
  • 3
  • 47
  • 55
  • I had to modify the MainFlutterWindow.swift file to store the FlutterViewController in a static variable (horrible on both counts, I know) but it did work. – Boggle Mar 26 '20 at 16:11