使用事件流在 Flutter 中获取下载进度

Posted

技术标签:

【中文标题】使用事件流在 Flutter 中获取下载进度【英文标题】:Get download Progress in Flutter using event stream 【发布时间】:2020-12-07 19:35:16 【问题描述】:

我正在尝试在 Flutter 应用程序中使用 CircularProgressIndicator 实现下载进度指示器。问题是最后一个开发人员已经使用 EventChannel 实现了下载功能,我需要有关如何获取下载进度数据以用作 CIrcularProgressIndicator 的值参数的帮助。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

1。创建频道:

const eventChannel = EventChannel('name_of_channel');

2。获取用于在此频道上接收事件的广播流:

final progress$ = eventChannel.receiveBroadcastStream() as Stream<double>; // this stream emits values from 0.0 to 1.0.

方法Stream receiveBroadcastStream ([dynamic arguments])也接受一个参数arguments,可以基于native代码传递。

3。基于进度流构建 Widget:

StreamBuilder<double>(
    initialData: 0,
    stream: progress$,
    builder: (context, snapshot) 
        final progress = snapshot.data;
        return CircularProgressIndicator(value: progress);
    
)

希望这能解决您的问题。

【讨论】:

以上是关于使用事件流在 Flutter 中获取下载进度的主要内容,如果未能解决你的问题,请参考以下文章

如果新的音频流在 Windows 上打开,通知?

JavaScript事件

Guzzle 6下载进度

Flutter BLoC 模式 - 如何在流事件后导航到另一个屏幕?

JavaScript 事件机制

如何在flutter web中监听(“关闭”事件)文件下载窗口?