gpt4 book ai didi

ios - 如何使用事件 channel 将数据从 swift 流式传输到 flutter?

转载 作者:行者123 更新时间:2023-12-01 17:46:22 25 4
gpt4 key购买 nike

我正在制作一个应用程序,在该应用程序中,我将数据从原生 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");
}
}
);

我如何在 Swift native 代码中实现相同的目标。我用谷歌搜索它并没有找到任何可以帮助我的东西。

我想要与我在 android java 中所做的一样快速:我想捕获局部变量中的事件,然后在需要将数据发送到 flutter 的地方使用它。

最佳答案

只需将 mEventSink 作为函数调用
mEventSink(data)
使用 FlutterEndOfEventStream 常量来表示流结束
mEventSink(FlutterEndOfEventStream)
如果您要将错误发送到 flutter 侧使用

mEventSink(FlutterError(code: "ERROR_CODE",
message: "Detailed message",
details: nil))

引用 API DOC

完整的快速示例
let eventChannel = FlutterEventChannel(name: "your.channel.id", binaryMessenger: messenger!)                                                                            
eventChannel.setStreamHandler(SwiftStreamHandler())

....

class SwiftStreamHandler: NSObject, FlutterStreamHandler {
public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
events(true) // any generic type or more compex dictionary of [String:Any]
events(FlutterError(code: "ERROR_CODE",
message: "Detailed message",
details: nil)) // in case of errors
events(FlutterEndOfEventStream) // when stream is over
return nil
}

public func onCancel(withArguments arguments: Any?) -> FlutterError? {
return nil
}
}

关于ios - 如何使用事件 channel 将数据从 swift 流式传输到 flutter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com