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

时间:2019-02-15 11:21:26

标签: flutter flutter-layout flutter-dependencies

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

实际上不知道如何实施 https://api.flutter.dev/flutter/services/MethodChannel/setMethodCallHandler.html

请提供完整的代码快照,任何帮助将是可贵的。

 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');
    }
  }