您好,我正在尝试使用多个事件通道将数据从本机端流式传输到 iOS swift 端,当我调用下面的设置处理程序时,我们只得到一个回调,我想要某种方法来区分我得到的事件接收器是针对哪个事件接收器的事件通道 1 或事件通道 2
let EventChannel1 = FlutterEventChannel(name: "stream1",binaryMessenger: controller.binaryMessenger)
let EventChannel2 = FlutterEventChannel(name: "stream2",binaryMessenger: controller.binaryMessenger)
EventChannel1.setStreamHandler(self)
EventChannel2.setStreamHandler(self)
Run Code Online (Sandbox Code Playgroud)
然后相关的回调我们得到这个
func onListen(withArguments arguments: Any?,
eventSink: @escaping FlutterEventSink) -> FlutterError? {
debugPrint("On Listen Call")
EventSink = eventSink//this is for the old event channel now I am using
//two event channel.
//and don't know how to know which event channel is which. on flutter
//app startup I listen both stream.
//and the "on Listen Call" which I print to console …Run Code Online (Sandbox Code Playgroud) 我正在制作一个应用程序,在该应用程序中,我将数据从原生 android 和 iOS 端流式传输到 flutter 端,然后在 UI 中显示数据。
我已经做了android部分。android 部分正在将数据发送到 flutter 端并在 UI 中显示它们。但问题是如何在 iOS swift 方面实现相同的目标。
对我有用的 Android 代码:
new EventChannel(getFlutterView(), "Eventchannelname").setStreamHandler(
new EventChannel.StreamHandler() {
@Override
public void onListen(Object args, EventChannel.EventSink events) {
Log.w(TAG, "adding listener");
mEventSink = events; // I use mEventsink.success(data) to pass the data to flutter side
@Override
public void onCancel(Object args) {
Log.w(TAG, "cancelling listener");
}
}
);
Run Code Online (Sandbox Code Playgroud)
如何在 Swift 本机代码中实现相同的目标。我用谷歌搜索它并没有找到任何可以帮助我的东西。
我想要与我在 android java 中所做的一样快速:我想捕获局部变量中的事件,然后在需要将数据发送到颤动的地方使用它。