一、Wails 简介 @

Wails 是一个用于构建跨平台桌面应用的工具,允许开发者使用 Go 语言(后端)和 Web 技术(HTML/CSS/JavaScript,前端)开发桌面应用,无需依赖 Electron 等重型框架,具有轻量、高性能的特点。支持 Windows、macOS、Linux 系统。

二、核心优势 @

  1. 跨平台:一次开发,可打包为 Windows、macOS、Linux 应用
  2. 轻量高效:基于 Go 语言,应用体积小,启动速度快
  3. 前后端无缝交互:Go 后端与 Web 前端可直接调用(无需 HTTP 通信)
  4. 原生体验:支持系统原生菜单、对话框、托盘等功能
  5. 灵活打包:内置打包工具,可生成对应平台的安装包或单文件

三、安装步骤 @

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:平台特定配置(图标、窗口大小等)

七、参考资源 @