一、Wails 简介 @
Wails 是一个用于构建跨平台桌面应用的工具,允许开发者使用 Go 语言(后端)和 Web 技术(HTML/CSS/JavaScript,前端)开发桌面应用,无需依赖 Electron 等重型框架,具有轻量、高性能的特点。支持 Windows、macOS、Linux 系统。
二、核心优势 @
- 跨平台:一次开发,可打包为 Windows、macOS、Linux 应用
- 轻量高效:基于 Go 语言,应用体积小,启动速度快
- 前后端无缝交互:Go 后端与 Web 前端可直接调用(无需 HTTP 通信)
- 原生体验:支持系统原生菜单、对话框、托盘等功能
- 灵活打包:内置打包工具,可生成对应平台的安装包或单文件
三、安装步骤 @
1. 前置依赖 @
-
Go 1.19+(需配置 GOPATH 和环境变量)
-
系统对应工具:
- Windows:安装 WebView2 运行时
- macOS:Xcode Command Line Tools(
xcode-select --install) - Linux:libgtk-3-dev、libwebkit2gtk-4.0-dev 等(具体见官方文档)
2. 安装 Wails @
go install github.com/wailsapp/wails/v2/cmd/wails@latest
3. 验证安装 @
wails version # 显示版本信息即安装成功
四、快速开始 @
1. 创建项目 @
wails init -n 项目名 -t 模板 # 模板可选:vanilla(原生JS)、react、vue 等
cd 项目名
2. 项目结构 @
项目名/
├── frontend/ # 前端代码(Web 技术)
├── backend/ # 后端代码(Go)
├── wails.json # 项目配置
└── main.go # 程序入口
3. 开发调试 @
wails dev # 启动开发模式(实时热更新)
4. 打包应用 @
wails build # 生成当前系统的应用(默认在 build/ 目录)
# 跨平台打包(示例:Windows)
wails build -platform windows/amd64
五、核心功能使用 @
1. 前后端通信 @
-
后端(Go)暴露方法:
// 在 backend 中定义 type App struct { ctx context.Context } func (a *App) Greet(name string) string { return fmt.Sprintf("Hello, %s!", name) } -
前端(JS)调用:
const result = await window.backend.App.Greet("World"); console.log(result); // 输出 "Hello, World!"
2. 系统功能调用 @
- 原生对话框:
wails.Dialog.ShowMessage("标题", "内容") - 系统托盘:通过
wailsapp/wails/v2/pkg/menu配置 - 窗口控制:调整大小、全屏等(通过
wailsapp/wails/v2/pkg/application)
六、配置说明 @
核心配置文件为 wails.json,主要配置项:
-
name:应用名称 -
outputfilename:输出文件名 -
frontend:前端构建命令(如npm run build) -
windows/macos/linux:平台特定配置(图标、窗口大小等)
七、参考资源 @
- 官方文档: https://wails.io/docs/introduction
- GitHub 仓库: https://github.com/wailsapp/wails
- 示例项目:官方仓库
examples目录下包含多种场景示例