Go?Wails開發(fā)桌面應(yīng)用使用示例探索
最近一直在基于 go-wails 開發(fā)嘗試開發(fā)一些Mac的桌面小應(yīng)用,前面做了一個(gè)簡單的 桌面時(shí)鐘的小應(yīng)用.功能比較單一,沒有做一些數(shù)據(jù)的操作等.于是又重新開發(fā)了一個(gè)新的小應(yīng)用做了一些新的嘗試,廢話不多說,做一個(gè)介紹與記錄
go-wails 介紹
wails官方介紹
Wails 是一個(gè)可讓您使用 Go 和 Web 技術(shù)編寫桌面應(yīng)用的項(xiàng)目。將它看作為 Go 的快并且輕量的 Electron 替代品。Wails 帶有許多預(yù)配置的模板,可讓您快速啟動(dòng)和運(yùn)行應(yīng)用程序。 有以下框架的模板:Svelte、React、Vue、Preact、Lit 和 Vanilla。 每個(gè)模板都有 JavaScript 和 TypeScript 版本。
項(xiàng)目效果
項(xiàng)目介紹
項(xiàng)目結(jié)構(gòu)與前面的項(xiàng)目 wails_pf 類似,但這次我采用了前端框架 「tailwindcss」 來設(shè)計(jì)界面,并使用了 sqlite 數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。
該項(xiàng)目的主要目的是記錄日常生活中的密碼等信息。在開發(fā)的過程中,我遇到了一些問題,將它們記錄下來,以備將來參考。
Tailwindcss
Tailwind CSS 是一個(gè)功能類優(yōu)先的 CSS 框架,它集成了最流行的 CSS 工具集
由于前段使用的是 Tailwindcss, 在開發(fā)的時(shí)候 不得不開 使用 tmux 開2個(gè)窗口,來進(jìn)行開發(fā), 效果如下:
于是找「官方文檔」 發(fā)現(xiàn)有配置的地方, 但是配置后沒有達(dá)到想要的結(jié)果.在目錄中的 wails.json 文件進(jìn)行的配置:
"build:dir": "", // 前端目錄的相對(duì)路徑。默認(rèn)為“frontend” "frontend:dir": "", // 安裝 Node 依賴的命令,在前端目錄運(yùn)行 - 通常是`npm install` "frontend:install": "", // 構(gòu)建資產(chǎn)的命令,在前端目錄中運(yùn)行 - 通常是 `npm run build` "frontend:build": "", // 此命令已被 frontend:dev:build 取代。如果未指定 frontend:dev:build 將回退到此命令。 // 如果此命令也未指定,將回退到 frontend:build "frontend:dev": "", // 此命令是 frontend:build 的 dev 等價(jià)物。 // 如果未指定回退到 frontend:dev "frontend:dev:build": "", // 此命令是 frontend:install 的 dev 等價(jià)物。如果未指定回退到 frontend:install "frontend:dev:install": "", // 此命令在 `wails dev`上的單獨(dú)進(jìn)程中運(yùn)行。用于第 3 方觀察者或啟動(dòng) 3d 方開發(fā)服務(wù)器 "frontend:dev:watcher": "", // 用于服務(wù)資產(chǎn)的第 3 方開發(fā)服務(wù)器的 URL,比如 Vite。 // 如果設(shè)置為 'auto' 那么 devServerUrl 將從 Vite 輸出中推斷出來
只能等待項(xiàng)目的后續(xù)了.
項(xiàng)目的登錄
由于項(xiàng)目涉及到登錄,按照慣例我使用了 session 會(huì)話管理,但在 Mac 下發(fā)現(xiàn)不太支持,最終我只能放棄了 session 并使用了 localStorage 進(jìn)行存儲(chǔ),以解決登錄問題。
在官方倉庫中搜索了一番,發(fā)現(xiàn)有其他開發(fā)者也遇到了類似的問題,于是我也將方案切換至 localStorage。如果有大佬解決了這個(gè)問題,請(qǐng)分享一下經(jīng)驗(yàn)。
項(xiàng)目的數(shù)據(jù)存儲(chǔ)
剛開始設(shè)計(jì)項(xiàng)目的時(shí)候是準(zhǔn)備離線使用的, 所以選了個(gè) sqllite 數(shù)據(jù)庫, 但是在開發(fā)的過程中涉及到 數(shù)據(jù)庫存儲(chǔ)的路徑問題, 于是搞了個(gè) install 的界面, 用來在程序安裝的時(shí)候配置數(shù)據(jù)存儲(chǔ)路徑.最后發(fā)現(xiàn)這玩意有點(diǎn)坑,由于權(quán)限問題,配置的路徑會(huì)出現(xiàn)權(quán)限問題.于是乎, 看好多的應(yīng)用 默認(rèn)直接在 /tmp 下搞.于是也寫死,在 /tmp下來做
目前開發(fā)遇到這些問題,后續(xù)更新有問題再做記錄
以上就是Go Wails的使用示例探索的詳細(xì)內(nèi)容,更多關(guān)于Go Wails探索的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Golang之sync.Pool對(duì)象池對(duì)象重用機(jī)制總結(jié)
這篇文章主要對(duì)Golang的sync.Pool對(duì)象池對(duì)象重用機(jī)制做了一個(gè)總結(jié),文中有相關(guān)的代碼示例和圖解,具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07Golang標(biāo)準(zhǔn)庫syscall詳解(什么是系統(tǒng)調(diào)用)
最近在研究go語言,發(fā)現(xiàn)go語言系統(tǒng)調(diào)用源碼只有調(diào)用函數(shù)的定義,今天通過本文給大家分享Golang標(biāo)準(zhǔn)庫syscall詳解及什么是系統(tǒng)調(diào)用,感興趣的朋友一起看看吧2021-05-05掌握GoLang Fiber路由和中間件技術(shù)進(jìn)行高效Web開發(fā)
這篇文章主要為大家介紹了GoLang Fiber路由和中間件進(jìn)行高效Web開發(fā),本文將深入探討 Fiber 中的路由細(xì)節(jié),學(xué)習(xí)如何創(chuàng)建和處理路由,深入了解使用路由參數(shù)的動(dòng)態(tài)路由,并掌握在 Fiber 應(yīng)用程序中實(shí)現(xiàn)中間件的藝術(shù)2024-01-01Golang跨平臺(tái)GUI框架Fyne的使用教程詳解
Go 官方?jīng)]有提供標(biāo)準(zhǔn)的 GUI 框架,在 Go 實(shí)現(xiàn)的幾個(gè) GUI 庫中,Fyne 算是最出色的,它有著簡潔的API、支持跨平臺(tái)能力,且高度可擴(kuò)展,下面我們就來看看它的具體使用吧2024-03-03