除了Flutter Desktop Embedding外还有一个go flutter desktop可以使用flutter开发桌面应用

Flutter Desktop Embedding 对比 go flutter desktop

# 安装go flutter desktop

官方安装文档在此: https://github.com/go-flutter-desktop/hover

windows安装注意事项

  1. TDM-GCC要安装64

  2. GO111MODULE首先设置为on,然后安装hover:go get -u github.com/go-flutter-desktop/hover

    这样做的是为了防止下载go官方包失败

  3. 安装完成hover后将GO111MODULE修改为auto,这是因为接下来执行hover init需要的

  4. hover要求使用flutter channel beta的发行版本

# 配置go flutter desktop的Debug环境

go flutter desktop模式是不支持与vscode集成debug的,不过可以通过修改配置让vscode支持。

# 首先创建一个项目,并使用hover初始化:

flutter crate xiquzl
cd xiquzl
hover init
# 执行run命令,让hover自动生成main_desktop.dart文件并完成后续的配置
hover run
1
2
3
4
5

# 接着用vscode打开项目

创建tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "hover build windows",
            "type": "shell",
            // 我的windows平台
            "command": "hover build windows --debug",
            "problemMatcher": [
                "$go"
            ]
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

创建luanch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flutter Desktop App",
            "type": "dart",
            "request": "launch",
            "program": "lib/main_desktop.dart",
            // 这里注意我的项目名称是xiquzl,所以会生成xiquzl.exe可执行文件
            "args": ["--use-application-binary", "go/build/outputs/windows/xiquzl.exe"],
            "preLaunchTask": "hover build windows"
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 接着flutter开启desktop支持

因为默认beta版本不支持desktop,所以需要通过一下步骤开启:

# 在flutter目录执行以下命令
git checkout HEAD~0
# 执行开启desktop支持命令
flutter confit --enable-windows-desktop
# 验证是否支持desktop,查看结果中是否有windows的device显示
flutter devices
1
2
3
4
5
6
7
8

# 最后在vscode中创建一个windows空目录

虽然上面的步骤我们通过特殊的方式开启了windows的支持,但是vscode右下角并不显示windows的device选项,所以创建一个windows目录就会显示出来这个选项,只有这个选项显示出来才能在f5的时候选着windows并开始调试。