作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试让 iOS 将数据发送回 flutter。更具体地说,控制中心媒体控制。我正在开发一个音乐应用程序,我可以获取从 Flutter 发送到 iOS 的数据,从而允许它显示在媒体控件中。
但是,如果我要控制下一个播放暂停,我如何让 iOS 在其自己的 channel 上发回数据?基本上让 Flutter 监听 iOS 发送数据。
最佳答案
假设您在插件(称为 XXX)中使用 Swift,您将有一个 SwiftXXXPlugin
类,带有静态 register
方法。移动 channel
成为静态的,而不是 register
的局部变量。然后为你的 iOS 创建一些静态方法到 Dart 方法并像这样调用 invokeMethod
:
channel.invokeMethod("someMethod", arguments: "someValue")
arguments
是 Any
并且可以是 channel 知道如何编码的任何内容,例如字节数组、String、int、double 等。它还可以编码基本对象的列表和 map 。
在 Dart 端,您有 XXX.dart。添加一个名为 setHandler
的静态方法,并实现这些方法的实现。在使用 channel 之前,您需要调用一次 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');
}
}
关于flutter - 如何将数据从 iOS 发送回 Flutter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54708249/
我是一名优秀的程序员,十分优秀!