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

留言
張貼留言