如何在Flutter iOS本机代码中使用多个EventChannel(Swift)

问题描述 投票:0回答:1

嗨,我正在尝试使用多个事件通道将数据从本机端流式传输到iOS swift端的抖动,当我调用下面的设置处理程序时,我们只得到一个回调,并且我想通过某种方式来区分所获取的事件用于Eventchannel1或EventChannel2

let EventChannel1 = FlutterEventChannel(name: "stream1",binaryMessenger: controller.binaryMessenger)
let EventChannel2 = FlutterEventChannel(name: "stream2",binaryMessenger: controller.binaryMessenger)

EventChannel1.setStreamHandler(self)
EventChannel2.setStreamHandler(self)

然后通过相关的回调我们得到了这个

  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 print two times 
    //which indicate the I am listen to both stream. 
    //but here I don't know how I know if the eventsink is for which event channel.
    //I want some condition here but don,t know how to implement. if possible 
    //something like this if eventchanel.name == eventchannel1 
    //so that I know which event channel event sink it is and handle it according.
    return nil
 }

  func onCancel(withArguments arguments: Any?) -> FlutterError? {
    debugPrint("On cancel Call")
    EventSink = nil
    return nil
 }

如果问题不清楚,请告诉我,以便我可以更清楚地解释。

swift flutter
1个回答
0
投票
[我喜欢这个问题,同时查看GitHub flutter事件频道示例并尝试其他尝试。检查下面的代码,我添加了注释,以便谁遇到相同的问题就可以轻松解决。
© www.soinside.com 2019 - 2024. All rights reserved.