如何在Flutter开发的Windows应用中显示原生本地通知?
Flutter Windows 桌面端原生本地通知实现方案
方案1:使用flutter_local_notifications通用跨平台通知库
- 这是目前生态最成熟的通知实现库,已完整支持Windows平台,无需单独编写原生逻辑即可满足绝大多数基础通知需求
- 集成要点:
- 在
pubspec.yaml中添加依赖:flutter_local_notifications: ^16.1.0(可替换为当前最新稳定版本) - Windows端无需额外配置权限,初始化时传入Windows平台的初始化参数即可,支持自定义通知图标
- 事件触发时直接调用库提供的展示通知方法,支持设置标题、正文、点击回调、通知优先级等属性
- 需要展示带操作按钮、进度条的高级通知时,自行拼接Windows Toast通知的XML模板传入即可
- 在
方案2:通过MethodChannel自行调用Windows原生API
- 如果你需要高度自定义的通知能力,或者不想引入第三方库,可以通过Flutter平台通道直接调用WinRT的原生通知接口
- 核心实现逻辑:
- Flutter层定义MethodChannel,触发通知时向Windows原生侧发送请求,携带标题、内容、附加参数等信息
- 在项目
windows/runner目录的原生C#/C++代码中,引入Windows.UI.Notifications命名空间 - 构造
ToastNotification对象,配置通知内容和交互回调后,通过ToastNotificationManager完成展示 - 通知的点击、关闭、按钮点击等事件都可以自行实现回调,传回Flutter层处理对应业务逻辑
方案3:使用Windows专属windows_notification库
- 这个库是专门针对Windows平台开发的通知工具,对原生通知特性的支持比通用跨平台库更完整,无需手动拼接XML模板
- 支持所有Windows原生通知能力:操作按钮、输入框、进度条、通知分组、历史通知管理等,适合对通知有高阶需求的场景
内容的提问来源于stack exchange,提问作者SinaMN75
相关产品推荐
相关产品推荐

