问题标签 [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.

0 投票
1 回答
376 浏览

flutter - 如何向 Flutter.EventChannel 添加多个监听器?

我正在构建一个Flutter-Plugin提供多个UI-Widgets与本机(Android/iOS)库交互的工具。库到 Flutter 端的更新和/或状态更改通过Flutter EventChannelEvents委托给 Flutter 。

这很好用,但是我想向同一个频道添加几个听众。但是每次我想注册第二个监听器时,第一个监听器都会被取消(StreamHandler.onCancel()调用)。

所以目前我为每个 UI-Widget 使用一个 EventChannel,但我想有更好的方法吗?

顺便说一句,我Inherited Widget在 Flutter 中使用了一个 DataProvider,它是唯一的监听器,EventChannel并且将更改委托给树,但是由于“架构指南”,这是不可能的

问题

  • 我可以在一个EventChannel 中添加多个侦听器吗?
  • 我可以监视添加或删除了哪些侦听器吗?!
0 投票
0 回答
129 浏览

android - 指定 Kotlin 泛型允许的一组有限类型

语境

我正在构建一个 Flutter 应用程序,我需要在其中使用一些仅适用于本机平台的 3rd 方库。为此,我使用 en EventChannel 来获取重复信息。

由于 Flutter 和本机代码无法确保它们之间的通信类型(dynamic为响应明确定义的通信方法),我正在尝试添加EventChannel.StreamHandler类的包装器,我可以在其中限制该类的类型以仅匹配颤振允许的。

到目前为止我做了什么?

这是一些数据的基类,这些数据将通过以下方式使用上述类:

问题

正如我们在上面看到的,使用泛型,它允许任何类型的类型,这并不能解决我的问题。

最后的问题

如何确保我的包装类只接受一组特定的预定义类型,以便我的add函数只处理/传递 Flutter 可以理解的类型?

OBS:我知道Pigeon,但我不会使用它,因为它不稳定。

0 投票
1 回答
540 浏览

android - 从 Android 通过 EventChannel 接收字符串

我目前正在学习 Flutter,特别是与设备本身进行通信。

目前我已经设置了一个 MethodChannel,我收到一个字符串列表作为结果,但现在我想将其更改为通过 EventChannel 在流上接收这些字符串。

我知道我仍然必须依靠 MethodChannel 来触发 android 端的方法,然后通过 EventChannel 将数据(在我的情况下为字符串)发送回颤振。但我真的不知道如何让 EventChannel 只发送几个流(它们之间可能会有一点延迟..),因为我发现的每个关于 EventChannel 的教程都比对我的帮助更令人困惑:(

这是我目前通过 EventChannel 获取内容的代码:

颤振插件:

android端的Kotlin代码:

以及我想如何在 BLoC 中使用这些消息在事件之后将它们发送到 UI: