golang 托盤菜單應(yīng)用及打開系統(tǒng)默認(rèn)瀏覽器
之前看到一個(gè)應(yīng)用,用go語(yǔ)言編寫,說是某某程序的windows圖形化客戶端,體驗(yàn)一下發(fā)現(xiàn)只是一個(gè)托盤,然后托盤菜單的控制面板功能直接打開本地瀏覽器訪問程序啟動(dòng)的web server網(wǎng)頁(yè)完成gui相關(guān)功能。頓時(shí)感覺,嗯,是個(gè)曲線繞開類似electron等框架的方法。
這種方式的好處是,可以把擅長(zhǎng)寫web服務(wù)的應(yīng)用桌面化,當(dāng)需要gui的時(shí)候,直接托盤菜單啟動(dòng)瀏覽器,完成相關(guān)功能后,直接關(guān)閉瀏覽器省內(nèi)存。
我的gost-ui-3程序用electron編寫,內(nèi)部集成瀏覽器,安裝包60-~85M,啟動(dòng)后內(nèi)存占用超過100M,所以后面考慮節(jié)省資源的方式,可以使用托盤圖標(biāo)+默認(rèn)瀏覽器
的方式解決。
當(dāng)然如果對(duì)?
cgo
?敏感的話,就不能用了,三個(gè)平臺(tái)都依賴?cgo
1. golang 托盤圖標(biāo)的使用
因?yàn)樽罱S玫氖莣indows,家里的mac已經(jīng)吃灰很久了。所以暫時(shí)默認(rèn)適配的是windows環(huán)境。理論上mac和linux上也是可以適配的。
最核心的是應(yīng)用了?github.com/getlantern/systray?這個(gè)庫(kù)。
一個(gè)最簡(jiǎn)單的示例如下:
注意提前準(zhǔn)備好相應(yīng)的圖標(biāo)文件
同時(shí)看到一些可能在應(yīng)用中需要用到的api方法如下
2. 用 golang 打開默認(rèn)瀏覽器
打開默認(rèn)瀏覽器其實(shí)就是執(zhí)行對(duì)應(yīng)平臺(tái)的系統(tǒng)命令。
結(jié)合我的托盤示例,一個(gè)完整的例子程序如下。主要看Open(uri string)
方法。