You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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"
  • 保存后,在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 05:27:12