Golang 本身是沒有自帶官方 GUI 給使用者開發,有 Qt、TK、Electron 各種不同實現的GUI實現方式桌面應用程式

當然較為可靠的是 Flutter for Desktop 來進行建構,畢竟背後是富爸爸 Google 進行維護

但是這次先不提 Flutter,想透過 WebView 來進行桌面應用程式開發

最初想要 HTML 嵌入顯示畫面,通常想到的都是使用 Electron 來實現

Lorca
LorcaChrome/Chromium
Electron

限制

  • Chrome/Chromium >= 70

安裝 Lorca

GO111MODULE = off
GO111MODULE = on

在專案目錄中初始化 Go模組管理環境

Example Hello World

作者有提供範例可供參考

Hello Wrold!

範例中很簡單,以資料文件網頁型態導入

Hello World!

Example Counter

目錄結構

.
├── assets.go
├── build-linux.sh
├── build-macos.sh
├── build-windows.bat
├── counter.gif
├── gen.go
├── go.mod
├── go.sum
├── icons
│   ├── icon-256.png
│   ├── icon.icns
│   └── icon.png
├── main.go
└── www
    ├── favicon.png
    └── index.html

測試另一個 範例 Counter 就能看到一個計數器

8.4M

雖然不能跟 flutter 一樣能在 Mobile 上面呈現,但是只針對桌面應用,已經很足夠了

UPX3.6M

問題

Swipe

導致有可能發生的錯誤或邏輯問題

Javscript

個人覺得不是一個很好的解決方案,如果有更好的方法,我會在進行補充

結論

WebView
WebView

參考資料