如何在Flutter编译完成并运行时获得通知或提示音?
解决Flutter编译完成后触发通知/提示音的方案
以下几个方案既能满足你的需求,又能保留VSCode的工具栏操作:
方案1:用VSCode插件监听编译输出
找支持监听终端/输出面板关键词并触发通知的插件,比如Output Notifier:
- 安装插件后,打开设置搜索
Output Notifier - 添加监听规则:匹配Flutter编译成功的关键词,比如
BUILD SUCCESSFUL(Android)或Build Succeeded(iOS) - 开启通知和提示音选项,每当编译完成,VSCode就会弹出系统通知并播放提示音
方案2:自定义VSCode任务集成通知
在VSCode的.vscode/tasks.json里创建自定义任务,把flutter run和通知命令绑定,还能通过VSCode任务工具栏触发:
{ "version": "2.0.0", "tasks": [ { "label": "Flutter Run with Notification", "type": "shell", "command": "flutter run && ${command:extension.notify} 'Flutter App is Running!'", "args": [], "group": { "kind": "build", "isDefault": true }, "presentation": { "reveal": "always", "panel": "shared" } } ] }
- 这里用到的
extension.notify命令需要安装VSCode Notification插件,也可以替换成系统原生命令:- Windows:
flutter run && msg * "Flutter app compiled successfully" - Mac:
flutter run && osascript -e 'display notification "Flutter app is running" with title "Build Complete"' - Linux:
flutter run && notify-send "Build Complete" "Flutter app is running"
- Windows:
- 保存后,在VSCode「任务」面板就能找到这个任务,点击运行即可保留工具栏操作,编译完成自动触发通知
方案3:Flutter项目内添加编译后钩子
Android端
在android/app/build.gradle里添加post-build任务:
tasks.whenTaskAdded { task -> if (task.name == 'assembleDebug' || task.name == 'assembleRelease') { task.doLast { // Mac通知示例,Windows/Linux替换为对应命令 exec { commandLine 'osascript', '-e', 'display notification "Android build done" with title "Flutter Build Complete"' } } } }
iOS端
打开Xcode进入项目「Build Phases」,添加「Run Script」阶段,输入:
osascript -e 'display notification "iOS build done" with title "Flutter Build Complete"'
这个方案编译完成后自动触发通知,无需额外操作,但需要针对不同平台配置。
内容的提问来源于stack exchange,提问作者Esteban Muñoz
相关产品推荐
相关产品推荐

