使用 Go 和 Web 技术构建桌面应用程序
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个使用 Go 和 Web 技术构建桌面应用程序的项目——WAILS。
Wails 是一个框架,可以使用 Go 和 Web 技术帮助编写桌面应用程序。对于前端,使用 Webview 库. 不过它使用平台的本机渲染引擎(当前 Linux 和 Mac 使用 Webkit,Windows 使用 MSHTML)。前端使用 HTML / Javascript / CSS 编码,后端是纯 Go 语言。通过绑定机制,可以将 Go 代码作为返回 Promise 的功能公开给前端。该项目编译为单个可执行文件,将所有资源捆绑到其中。在 Windows 和 MacOS 上,可以将二进制文件捆绑到特定于平台的程序包中进行分发。
注意:渲染引擎是 WebView,不是捆绑的 Web 浏览器,因此某些“浏览器 API”将对您的应用程序不可用,例如 localstorage。大多数应用程序不需要使用它们,如果您仍然想这样做,可以使用 Go 来完成大多数事情。
功能
后端使用标准 Go
使用任意前端技术构建 UI 界面
快速为您的 Go 应用生成 Vue、Vuetify、React 前端代码
通过简单的绑定命令将 Go 方法暴露到前端
使用原生渲染引擎 - 无嵌入式浏览器
共享事件系统
原生文件系统对话框
强大的命令行工具
跨多个平台
概述
Wails
Wails 被设计成尽可能缩小 web 技术和 Go 之间的差异。前端是 Webview 组件, 并且您可以使用自己喜欢的任何常见 Javascript 框架来开发前端代码,并且可以与里面的 Go 代码进行交互。这是通过共享的 IPC 机制来实现的。
IPC 概述
IPC 机制可以在 2 个运行时中运行,一个运行在 Javascript 中,另一个运行在 Go 中。它们都提供了一个简单的接口,从而减轻了开发人员直接处理 IPC 机制的负担。
运行时共享开发人员可以与之交互的公共组件:绑定和事件。
绑定
Wails 应用程序提供了一种方法,可让您将公开的 Go 代码(绑定)到前端。使用此方法,可以将任意函数或公开的结构方法绑定。在启动时,Wails 将分析绑定的函数/方法并自动在 Javascript 中提供等效函数。使您可以直接从 Javascript 调用绑定的 Go 代码。
JavaScript 包装函数,处理了调用 Go 代码的所有复杂性。您只需使用 Javascript 调用该函数并接收一个 Promise。绑定 Go 代码功能,处理了绑定的所有复杂性。如果对 Go 代码的调用成功完成,则结果将传递到 resolve 函数。如果返回错误,则将其传递给 reject 函数。
事件
Wails 提供了一个统一的事件系统,类似于 Javascript 的原生事件系统。这意味着从 Go 或 Javascript 发送的任何事件都可以由任何一方接收。数据可以随任何事件一起传递。这样,您就可以做一些简单的事情,例如让后台进程在 Go 中运行,并通知前端去更新页面。
安装
安装命令
安装过程非常简单,只需运行以下命令:
go get -u github.com/wailsapp/wails/cmd/wails
安装后,“wails update”命令可用于后续更新。
要获得最新功能的最新 pre-release 可以在后面附加 -pre 标签:wails update -pre.
要完成安装设置,请运行 安装命令 wails setup 并且填写对你的名字和邮箱。
生成新项目
使用初始化命令 wails init 生成一个新项目,选择默认选项。
构建
切换到项目目录 cd my-project 并且使用构建命令构建命令 wails build 构建你的项目。
如果一切顺利,则应该在本地目录中有一个已编译的程序。如果使用 Windows,请使用 ./my-project 来运行它或双击 myproject.exe。
项目展示
—END—
开源协议:MIT
开源地址:https://github.com/wailsapp/wails
(点击文末 阅读原文 可直接跳转哦~)
往期推荐
《Go 开源说 2022》预告PAAS系列之第12期 集群镜像技术 sealer
基于 QUIC 协议的 HTTP/3 正式发布
Go高级工程师必修课 | 真心建议你来听听,别错过~
想要了解Go更多内容,欢迎扫描下方
事实上的团队协作软件,Visual Studio Code - 在撰写本文时市场上最受欢迎的代码编辑器之一,以及WhatsApp的桌面版本都有一个共同点:它们都是用Electron构建的.js.随着这 ... 要了解Java桌面应用程序有什么问题,让我们看一下JavaFX(桌面应用程序的领先UI框架)的新功能. 很明显,它正在向Web方法发展,从Web世界中借用了越来越多的功能. JavaFX支持一部分CS ... 一般来说,选择用于应用程序的 GUI 工具箱会是一个棘手的事情,Python 也不例外.对于 Python 来说,可以选择的工具箱种类繁多.就我所知道的而言,比较常用的就有 TkInter, wxPy ... HTML,CSS和JavaScript语言是否可以真正用于构建桌面应用程序? 答案是肯定的. 在这篇文章中,我们将主要关注Electron如何使用HTML.CSS和Javascript等网络技术来创建 ... 如果您愿意将Groovy融入其中,那么构建桌面应用程序将是一种愉快的体验. Griffon是一个遵循Grails精神的应用程序框架,将乐趣带回了桌面开发. 桌面应用程序开发 ,这是当今Web开发,并发 ... 使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序 用户喜爱的应用,以 Electron 构建 Visual Studio Code | WhatsApp | Twitch | ... 我非常喜欢Vue.这是个优秀的框架,可以帮助我们搭建完美的web应用程序.但真正神奇的地方是你不仅仅可以用它搭建web应用程序,还可以使用Weex或NativeScript-Vue创建本地移动应用程序 ... 今晚在网上看到一个非常酷的JS框架Prototype Window Class.Web开发者通过Prototype Window Class便可以轻松地在网页上构建各式各样的窗口(Window or ... 1. 简介 本教程是利用npm和nativefier实现把任意web项目转换成一个桌面应用软件. 2. 环境及软件 操作系统:Windows10 64位 软件:node.js (node-v8.11. ...使用 Go 和 Web 技术构建桌面应用程序相关推荐
最新文章
热门文章