使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个使用 Go 和 Web 技术构建桌面应用程序的项目——WAILS。

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

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 机制来实现的。

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

  • IPC 概述

IPC 机制可以在 2 个运行时中运行,一个运行在 Javascript 中,另一个运行在 Go 中。 它们都提供了一个简单的接口,从而减轻了开发人员直接处理 IPC 机制的负担。

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

运行时共享开发人员可以与之交互的公共组件:绑定和事件。

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

  • 绑定

Wails 应用程序提供了一种方法,可让您将公开的 Go 代码(绑定)到前端。 使用此方法,可以将任意函数或公开的结构方法绑定。 在启动时,Wails 将分析绑定的函数/方法并自动在 Javascript 中提供等效函数。 使您可以直接从 Javascript 调用绑定的 Go 代码。

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

JavaScript 包装函数,处理了调用 Go 代码的所有复杂性。 您只需使用 Javascript 调用该函数并接收一个 Promise。 绑定 Go 代码功能,处理了绑定的所有复杂性。 如果对 Go 代码的调用成功完成,则结果将传递到 resolve 函数。 如果返回错误,则将其传递给 reject 函数。

  • 事件

Wails 提供了一个统一的事件系统,类似于 Javascript 的原生事件系统。 这意味着从 Go 或 Javascript 发送的任何事件都可以由任何一方接收。 数据可以随任何事件一起传递。 这样,您就可以做一些简单的事情,例如让后台进程在 Go 中运行,并通知前端去更新页面。

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

安装

  • 安装命令

安装过程非常简单,只需运行以下命令:

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

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

项目展示

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

WOMBAT

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

SURGE

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

MOLLY 钱包

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

PORTFALL

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

RESTORIC

使用 Go 和 Web 技术构建桌面应用程序(go使用h5开发桌面应用程序)

OPTIMUS 截图编辑器

—END—

开源协议:MIT

开源地址:https://github.com/wailsapp/wails

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月20日 上午8:19
下一篇 2024年5月20日 上午8:31

相关推荐

  • 湘江东畔绘宏图,党旗辉映谱新篇——丁字湾街道党建引领基层治理纪实

    湘江东畔绘宏图,党旗辉映谱新篇 ——丁字湾街道党建引领基层治理纪实 谢璐 杨刚 梁畅 肖冰清 在党的二十大胜利召开之年,作为省会长沙向西向北发展的主力军,雷锋家乡望城区乘着“强省会…

    科研百科 2023年1月10日
    200
  • 档案管理系统厂家

    档案管理系统厂家 档案管理系统厂家是指专门生产、销售和提供档案管理系统产品的公司。这些公司通常提供多种类型的档案管理系统,包括手动管理、数字化管理、智能型管理等。这些系统可以帮助企…

    科研百科 2024年8月30日
    35
  • winsmb服务的权限

    Winsmb服务是一种重要的Windows系统服务,用于共享文件和文件夹,为各个应用程序和用户提供了一个访问文件和文件夹的平台。然而,在使用Winsmb服务时,需要确保其权限设置正…

    科研百科 2024年11月13日
    1
  • 国际课程科研项目有哪些

    国际课程科研项目有哪些 随着全球化的发展,国际课程科研项目已经成为了许多学校和教育机构的重要选择。这些项目通常与本地和全球问题相关,并为学生提供了探索和研究的机会。本文将介绍一些常…

    科研百科 2025年4月3日
    1
  • 体制内,这3个岗位叫“合同工”,竞争还比较大!(体制内的合同工)

    相信很多人在找工作时,都会考虑有编制的工作。一来这种岗位比较稳定,考上的很少有被辞退的,除非你自己想辞职走人。二来还有诸多福利待遇可以享受到。 那么除了编制岗位外,其实还有合同岗位…

    科研百科 2023年12月30日
    214
  • 泉州电信实施基层党建指导员制

    来源:通信信息报 本报讯 近日,为推进无党员生产单元党的工作全覆盖,福建泉州电信党委探索创新,通过“选准、管好、用活”的方式,选派业务素质好、党群工作熟、协调能力强的党员干部作为党…

    科研百科 2023年1月22日
    313
  • 进击吧!2024丨四川地勘科研“最强大脑”今年这样干

    来源:【四川日报-川观新闻】 川观新闻记者 王若晔 3月11日,四川省地质调查研究院2024年工作会举行。记者从会上获悉,聚焦高层次科研,2024年省地调院的目标是争取省部级以上重…

    科研百科 2024年4月23日
    115
  • 科研项目与科研课题

    科研项目与科研课题是现代社会的重要领域,对于推动科学技术的发展和应用,提升国家和民族的竞争力具有重要的意义。本文将探讨科研项目与科研课题的现状、挑战以及未来发展趋势。 科研项目与科…

    科研百科 2025年3月2日
    0
  • 项目技术指标是指什么

    项目技术指标是指项目在实现过程中需要达到的目标和指标,它是衡量项目是否达到预期效果的重要标准。在项目管理中,项目技术指标是确保项目进度、质量和成本的关键要素。本文将介绍项目技术指标…

    科研百科 2024年10月20日
    9
  • 智慧零售 – 善云服装店衣服鞋帽电商小程序开发(善智服装旗舰店)

    (此处已添加小程序,请到今日头条客户端查看) 在时尚界,走在前沿不仅仅关于穿搭,更关乎如何运用科技创新以迎合市场潮流。我们作为专注于小程序研发的软件公司,深知打造一个用户体验卓越的…

    科研百科 2024年9月25日
    30