问题标签 [event-channel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - 如何向 Flutter.EventChannel 添加多个监听器?
我正在构建一个Flutter-Plugin
提供多个UI-Widgets
与本机(Android/iOS)库交互的工具。库到 Flutter 端的更新和/或状态更改通过Flutter EventChannelEvents
委托给 Flutter 。
这很好用,但是我想向同一个频道添加几个听众。但是每次我想注册第二个监听器时,第一个监听器都会被取消(StreamHandler.onCancel()
调用)。
所以目前我为每个 UI-Widget 使用一个 EventChannel,但我想有更好的方法吗?
顺便说一句,我Inherited Widget
在 Flutter 中使用了一个 DataProvider,它是唯一的监听器,EventChannel
并且将更改委托给树,但是由于“架构指南”,这是不可能的
问题
- 我可以在一个EventChannel 中添加多个侦听器吗?
- 我可以监视添加或删除了哪些侦听器吗?!
android - 指定 Kotlin 泛型允许的一组有限类型
语境
我正在构建一个 Flutter 应用程序,我需要在其中使用一些仅适用于本机平台的 3rd 方库。为此,我使用 en EventChannel 来获取重复信息。
由于 Flutter 和本机代码无法确保它们之间的通信类型(dynamic
为响应明确定义的通信方法),我正在尝试添加EventChannel.StreamHandler
类的包装器,我可以在其中限制该类的类型以仅匹配颤振允许的。
到目前为止我做了什么?
这是一些数据的基类,这些数据将通过以下方式使用上述类:
问题
正如我们在上面看到的,使用泛型,它允许任何类型的类型,这并不能解决我的问题。
最后的问题
如何确保我的包装类只接受一组特定的预定义类型,以便我的add
函数只处理/传递 Flutter 可以理解的类型?
OBS:我知道Pigeon,但我不会使用它,因为它不稳定。
android - 从 Android 通过 EventChannel 接收字符串
我目前正在学习 Flutter,特别是与设备本身进行通信。
目前我已经设置了一个 MethodChannel,我收到一个字符串列表作为结果,但现在我想将其更改为通过 EventChannel 在流上接收这些字符串。
我知道我仍然必须依靠 MethodChannel 来触发 android 端的方法,然后通过 EventChannel 将数据(在我的情况下为字符串)发送回颤振。但我真的不知道如何让 EventChannel 只发送几个流(它们之间可能会有一点延迟..),因为我发现的每个关于 EventChannel 的教程都比对我的帮助更令人困惑:(
这是我目前通过 EventChannel 获取内容的代码:
颤振插件:
android端的Kotlin代码:
以及我想如何在 BLoC 中使用这些消息在事件之后将它们发送到 UI: