使用Wails和Go创建图形桌面应用

追梦人在路上不断追寻 · · 2403 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

众所周知,Go主要用于构建API,Web后端,CLI工具。但是除了这些,其实Go还可以做很多其它事情,比如开发桌面应用。

通过Wails框架,我们可以使用Go和Vue.js构建出桌面应用程序。

image

使用Wails开发桌面应用非常的容易,只需要使用简单的命令,我们就可以搭建出运行框架,而且打包应用非常简单,只需要一条命令就可以完成。

Wails提供了将Go代码和Web前端包装到一个二进制文件中的功能。通过Wails CLI,我们可以轻松处理项目的创建,编译和捆绑。

安装

我们可以使用go get非常快速地安装wails cli环境。

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

事件绑定

go和前端通过事件进行绑定,前端绑定golang的方法之后,就可以和golang进行数据的传递,并且这种传递是双向的,前端可以给后端发送数据,后端也可以给前端推送数据。

image

方法调用

后端可以通过Bind方法将实例绑定到app上,然后前端可以通过后端绑定的实例来调用方法。

package main
import (
    "github.com/leaanthony/mewn"
    "github.com/plutov/packagemain/cpustats/pkg/sys"
    "github.com/wailsapp/wails"
)
func main() {
    js := mewn.String("./frontend/dist/app.js")
    css := mewn.String("./frontend/dist/app.css")
    stats := &sys.Stats{}
    app := wails.CreateApp(&wails.AppConfig{
        Width:  512,
        Height: 512,
        Title:  "CPU Usage",
        JS:     js,
        CSS:    css,
        Colour: "#131313",
    })
    app.Bind(stats)
    app.Run()
}
window.backend.instance.functionname
image

总结

Wails的出现为我们使用go开发桌面提供了另一种思路,事件绑定概念使控制应用程序的状态变得非常容易。

当然,Wails还处于成长阶段,目前可能还有些不完善的地方,不过这并不影响我们去学习和使用它,毕竟使用一门语言来做所有事情是我们所期望的,虽然这并不现实。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:追梦人在路上不断追寻

查看原文:使用Wails和Go创建图形桌面应用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2403 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传