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)文章
Go語言MySQLCURD數(shù)據(jù)庫操作示例詳解
這篇文章主要為大家介紹了Go語言MySQLCURD數(shù)據(jù)庫操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
基于Go語言開發(fā)一個(gè) IP 歸屬地查詢接口工具
在日常開發(fā)中,IP 地址歸屬地查詢是一個(gè)常見需求,本文將帶大家使用 Go 語言快速開發(fā)一個(gè) IP 歸屬地查詢接口服務(wù),有需要的小伙伴可以了解下2025-09-09
詳解Go語言中new和make關(guān)鍵字的區(qū)別
本篇文章來介紹一道非常常見的面試題,到底有多常見呢?可能很多面試的開場白就是由此開始的。那就是 new 和 make 這兩個(gè)內(nèi)置函數(shù)的區(qū)別,希望對(duì)大家有所幫助2023-03-03
Golang實(shí)現(xiàn)心跳機(jī)制的示例詳解
這篇文章主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)心跳機(jī)制的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下2024-04-04
Go中使用gjson來操作JSON數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了Go中使用gjson來操作JSON數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

