我正在尝试让 iOS 将数据发送回 flutter。更具体地说,是控制中心媒体控制。我正在开发一个音乐应用程序,我可以获取从 Flutter 发送到 iOS 的数据,从而允许它显示在媒体控件中。
但是,如果我要控制播放暂停下一个上一个,我该如何让 iOS 在自己的通道上发送数据呢?基本上让Flutter监听iOS发送数据。
假设您在插件中使用 Swift(称为 XXX),您将有一个SwiftXXXPlugin
类,具有静态register
方法。移动channel
成为静态变量,而不是局部变量register
。然后为你的iOS创建一些静态方法来Dart方法并调用invokeMethod
像这样:
channel.invokeMethod("someMethod", arguments: "someValue")
arguments
is 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');
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)