Получить данные из флаттера в собственном коде без FlutterViewController

У меня есть собственные проекты для iOS и Android, и сейчас я разрабатываю модуль флаттера, к которому можно получить доступ с обеих платформ. Я следовал за документацией здесь для добавления флаттера в существующее приложение.

Я использовал метод канала для связи между нативным и трепетным компонентами. Теперь я хочу получить некоторые данные из компонента флаттера в нативной части. То, что я делаю, это создание метода канала с движком флаттера в качестве бинарного мессенджера.

    let flutterEngine = (UIApplication.shared.delegate as! AppDelegate).flutterEngine!
    let channel = FlutterMethodChannel(name: "my.channel.name"
                                       binaryMessenger: flutterEngine)
    channel.invokeMethod("get_value", arguments: nil) { (value) in
        guard let string = value as? String else { return }
        self.valueLabel.text = "value received : " + string
    }

И в трепетании

class CommunicationChannel {
  static const channel = MethodChannel("my.channel.name");

  void startListening() {
    print(" startListening........... ");

    channel.setMethodCallHandler((MethodCall call) async {
      print("channel method " + call.method);
      switch (call.method) {

        case 'get_value':

          return myValue
        default:
          throw MissingPluginException();
      }
    });
  }
}

main() функция

void main() {
  print(" main() ------------------------. ");

  CommunicationChannel channel = CommunicationChannel();
  channel.startListening();

  runApp(new MyApp());
}

Меня беспокоит то, что, хотя у меня нет никакого представления здесь, виджет создается в основной функции, которая не используется.
Есть ли способ прочитать значения из флаттера в нативном коде, не создавая вид / виджет?

0 ответов

Другие вопросы по тегам