wails Go+vue/angular/react編寫桌面GUI客戶端

最近公司需要做一個(gè)上傳工具,因?yàn)樯蟼鞯奈募赡芎脦讉€(gè)G,所以用傳統(tǒng)的http上傳是很不現(xiàn)實(shí)的七咧,大家就想著做成客戶端,但是要跨平臺(tái)叮叹,所以就進(jìn)行技術(shù)選型艾栋,當(dāng)時(shí)大家最先想到的就是electron,但是electron打出來的包很大,因?yàn)樗岩粋€(gè)瀏覽器內(nèi)核也給打包進(jìn)去了蛉顽。后來就想起了用go寫蝗砾,因?yàn)間o也是跨平臺(tái)的,然后百度找了幾個(gè)携冤,都是文檔不全悼粮,偶然看到一個(gè)框架叫wails,而且這個(gè)相對(duì)于其他的幾個(gè)還有個(gè)文檔曾棕,關(guān)鍵是目前幾大js框架都支持扣猫,wails是使用系統(tǒng)本身的系統(tǒng)內(nèi)核,mac/linux使用的是webkit翘地,windows使用的是mshtml申尤,目前就是ie內(nèi)核癌幕,因?yàn)閕e太落后目前好多不兼容,github上很多人提issure昧穿,作者后期考慮換用edge內(nèi)核序芦。下面是做完效果圖


在這里插入圖片描述

在這里插入圖片描述

安裝wails

首先你的安裝好go的sdk

go get github.com/wailsapp/wails/cmd/wails

后續(xù)更新命令

wails init
在這里插入圖片描述

在這里插入圖片描述

如圖所示,然后選擇你要使用的js框架粤咪,我這里用的是vue谚中,所以選擇的是3

構(gòu)建項(xiàng)目

用ide打開新建的go項(xiàng)目,我這里用的是goland

go mod download

默認(rèn)使用的是go mod寥枝,所以要下載依賴宪塔,最好用代理,不然估計(jì)會(huì)超級(jí)慢囊拜,甚至?xí) ? 這是我的環(huán)境變量配置某筐,goland也需要配置

GOROOT gosdk解壓目錄

GOPATH    存放代碼和依賴庫(kù)的地址,需要新建

GO111MODULE    auto 自動(dòng) on 使用mod off 不使用mod

GOPROXY    https://goproxy.io或者h(yuǎn)ttps://mirrors.aliyun.com/goproxy/ 下載依賴代理冠跷,速度快
在這里插入圖片描述

在這里插入圖片描述

項(xiàng)目結(jié)構(gòu)

在這里插入圖片描述

frontend是一個(gè)標(biāo)準(zhǔn)的前端項(xiàng)目結(jié)構(gòu)南誊,可以用webstorm打開,和平時(shí)開發(fā)沒啥不一樣
在這里插入圖片描述

運(yùn)行程序

wails serve //運(yùn)行g(shù)o項(xiàng)目蜜托,啟動(dòng)一個(gè)網(wǎng)橋抄囚,這樣js可以直接調(diào)用go的代碼
npm run serve  //這個(gè)要進(jìn)入前端的項(xiàng)目,然后運(yùn)行

然后瀏覽器訪問http://localhost:8080

在這里插入圖片描述

框架的重點(diǎn)介紹

js如何和go進(jìn)行通信呢橄务,wails提供了一個(gè)網(wǎng)橋幔托,這個(gè)咱們不研究,我們只管如何使用
在這里插入圖片描述

我們先定義個(gè)結(jié)構(gòu)體蜂挪,并需要來一個(gè)初始化的方法重挑,然后在main.go中綁定結(jié)構(gòu)體的方法。


在這里插入圖片描述

js中的怎么調(diào)用呢
window.backend.UserBind.CheckLogin()
//UserBind就是初始化的結(jié)構(gòu)體名稱
//CheckLogin 就是結(jié)構(gòu)體下的具體方法
//then中是結(jié)構(gòu)體中返回的數(shù)據(jù)
在這里插入圖片描述

選擇文件棠涮,需要通過 *wails.Runtime 來調(diào)用谬哀。下面是我的一個(gè)案例。


在這里插入圖片描述

js中調(diào)用選擇文件的方法


在這里插入圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末严肪,一起剝皮案震驚了整個(gè)濱河市史煎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诬垂,老刑警劉巖劲室,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異结窘,居然都是意外死亡很洋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門隧枫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喉磁,“玉大人谓苟,你說我怎么就攤上這事⌒” “怎么了涝焙?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)孕暇。 經(jīng)常有香客問我仑撞,道長(zhǎng),這世上最難降的妖魔是什么妖滔? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任隧哮,我火速辦了婚禮,結(jié)果婚禮上座舍,老公的妹妹穿的比我還像新娘沮翔。我一直安慰自己,他們只是感情好曲秉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布采蚀。 她就那樣靜靜地躺著,像睡著了一般承二。 火紅的嫁衣襯著肌膚如雪榆鼠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天矢洲,我揣著相機(jī)與錄音璧眠,去河邊找鬼。 笑死读虏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的袁滥。 我是一名探鬼主播盖桥,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼题翻!你這毒婦竟也來了揩徊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤嵌赠,失蹤者是張志新(化名)和其女友劉穎塑荒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姜挺,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡齿税,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炊豪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凌箕。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拧篮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牵舱,到底是詐尸還是另有隱情串绩,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布芜壁,位于F島的核電站礁凡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏慧妄。R本人自食惡果不足惜把篓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腰涧。 院中可真熱鬧韧掩,春花似錦、人聲如沸窖铡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽费彼。三九已至滑臊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間箍铲,已是汗流浹背雇卷。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颠猴,地道東北人关划。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像翘瓮,于是被迫代替她去往敵國(guó)和親贮折。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容