我试图让iOS发送数据回来。更具体地说,控制中心媒体控制。我正在开发音乐应用程序,我可以将从Flutter发送到iOS的数据,从而允许它显示在媒体控件中。
但是,如果我要控制下一个播放暂停,我将如何让iOS在自己的频道上发送数据。基本上有Flutter听iOS发送数据。
假设您在插件中使用Swift(称为XXX),您将拥有一个SwiftXXXPlugin
类,使用静态register
方法。移动channel
成为一个静态的,而不是register
的局部变量。然后为iOS到Dart方法创建一些静态方法,并像这样调用invokeMethod
:
channel.invokeMethod("someMethod", arguments: "someValue")
arguments
是Any
,可以是通道知道如何编码的任何东西,例如,字节数组,字符串,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');
}
}