Как отправить данные обратно с iOS во Flutter? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь заставить iOS отправить данные обратно во флаттер.Более конкретно, Control Center Media Controls.Я работаю над музыкальным приложением и могу передавать данные из Flutter на iOS, что позволяет отображать их в элементах управления мультимедиа.

Однако как бы я заставил iOS отправлять данные обратно на свой собственный канал, если бы я следил за паузой воспроизведения в следующем предыдущем.В основном Flutter слушает отправку данных с iOS.

1 Ответ

0 голосов
/ 15 февраля 2019

Предполагая, что вы используете Swift в своем плагине (называемом XXX), у вас будет класс SwiftXXXPlugin со статическим register методом.Переместите channel, чтобы стать статической, а не локальной переменной register.Затем создайте несколько статических методов для методов iOS и Dart и вызовите invokeMethod, например, так:

channel.invokeMethod("someMethod", arguments: "someValue")

arguments равно Any и может быть любым, что канал знает, как кодировать, например,массив байтов, String, int, double и т. д. Он также может кодировать списки и карты основных объектов.

В конце Dart у вас есть XXX.dart.Добавьте статический метод с именем, например, setHandler, и реализуйте реализации методов.Вам нужно будет позвонить setHandler один раз перед использованием канала.

  static setHandler() {
    _channel.setMethodCallHandler(methodCallHandler);
  }

  static Future<dynamic> methodCallHandler(MethodCall methodCall) async {
    switch (methodCall.method) {
      case 'someMethod':
        print(methodCall.arguments); // prints the argument - "someValue"
        return null; // could return a value here

      default:
        throw PlatformException(code: 'notimpl', message: 'not implemented');
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...