Wails v3.0.0 發布 - 使用 Go 和 Web 建立桌面應用程式

 

Wails v3.0.0 是 Wails 框架自推出以來最大幅度的重大改版(歷經近四年的開發與測試)。它採用全新架構重構,讓開發者能使用 Go 語言結合你所熟悉的網頁前端技術(HTML/CSS/JS),打造高效能的跨平台桌面與行動應用程式。

核心架構與重要新功能

多視窗支援(Multiple Windows): 

  • 突破以往單一視窗的限制,現在可以在執行階段(Runtime)動態建立、顯示、隱藏或關閉任意數量的視窗,每個視窗皆擁有獨立的選項、事件與生命週期。

Go 服務與強型別繫結(Services & Generated Bindings):

  • 後端採用原生的 Go 結構與服務(Services),透過 wails3 generate bindings 進行靜態原始碼分析。
  • 註冊的服務方法可直接對應匯出至前端,並完整保留 Go 的文件註解(Doc Comments)與參數名稱,自動生成 TypeScript 類別/介面與列舉(Enums)。

系統匣與原生選單(System Tray & Native Menus):

  • 支援常駐系統匣、自訂燈光/暗色圖示、原生應用程式選單、右鍵內容選單,甚至可將視窗釘選附著在系統匣圖標上。

模組化管理 API: 

  • 視窗、選單、對話框、事件、螢幕、剪貼簿等功能改由專屬的 Manager 物件管理,捨棄了 v2 單一繫結 context 的舊模式。

開發體驗與工具鏈

  • 基於 Taskfile 的建構系統: 專案改用透明、可視且易於擴展/除錯的 Taskfile 取代封閉的 CLI 隱含指令。
  • 內建應用程式更新器(In-app Updater): 提供可抽換的更新供應商機制、密碼學簽章驗證、原子替換(Atomic Swap)以及可自訂的預設更新介面。
  • 伺服器模式(Server Builds): 支援將相同的應用程式與服務作為純 HTTP 伺服器運行(無需顯示原生視窗)。
  • 整合工具升級: 包含完整的 wails3 設定精靈,且 wails3 dev 在應用程式結束時會自動終止背景程序。

跨平台與系統相容性

支援平台:

  • 桌面端: Windows (amd64/arm64)、macOS (Intel/Apple Silicon)、Linux (amd64/arm64,Linux 預設採用 GTK4 + WebKitGTK 6.0)。
  • 行動端(實驗性): 首次支援 iOS 與 Android(共享相同的 main.go 與前端程式碼)。

Go 版本需求:

  • 開發與建構需使用 Go 1.26 或更新版本。

平台特色最佳化:

  • macOS: 支援 macOS 26 及更新版本的原生 Liquid Glass 視覺效果(舊版本提供降級相容),並修正了鍵盤快速鍵佈局對應(如 AZERTY、QWERTZ、Dvorak)。
  • Windows: 強化 WebView2 的行程容錯能力(當背景程序失效時不再直接呈現空白畫面),並修復多項 COM 存留期相關問題。

安全性與重大遷移注意

  • 安全性修復: 修正多項先前版本的安全公告漏洞(包含限制 Linux 跨源子框架的 wails: 訊息阻斷等)。
  • 升級注意: 由於 v3 屬於重大版本升級(Major Update),其生命週期模型、服務繫結、執行階段 API 皆有大幅變動,從 v2 遷移至 v3 需要進行結構性的程式碼調整(官方有提供專門的 Migration Guide 遷移指南)。

https://github.com/wailsapp/wails

Picture Source

wails.io

留言