如何将数据从 iOS 发送回 Flutter?

How to send data back from iOS to Flutter?

我正在尝试让 iOS 将数据发送回 flutter。更具体地说,控制中心媒体控制。我正在开发一个音乐应用程序,我可以获取从 Flutter 发送到 iOS 的数据,从而允许它显示在媒体控件中。

但是,如果我要控制下一个播放暂停,我如何让 iOS 在其自己的频道上发回数据?基本上让 Flutter 监听 iOS 发送数据。

假设您在插件(称为 XXX)中使用 Swift,您将有一个 SwiftXXXPlugin class,带有静态 register 方法。移动 channel 成为静态变量,而不是 register 的局部变量。然后为 Dart 方法的 iOS 创建一些静态方法并像这样调用 invokeMethod

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

argumentsAny 并且可以是通道知道如何编码的任何内容,例如字节数组、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');
    }
  }