在Go中使用Energy创建跨平台GUI应用

snxamdf · · 1439 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

<p align="center"> <img src="https://assets.yanghy.cn/energy-doc/energy-icon.png"> </p> # Energy 是Go基于CEF构建桌面应用的框架 ### [简介](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25) > [energy](https://github.com/energye/energy) 是 Go 基于 CEF(Chromium Embedded Framework) > 开发的框架,内嵌 [CEF](https://bitbucket.org/chromiumembedded/cef) 二进制 > > 使用 Go 和 Web 端技术 ( HTML + CSS + JavaScript ) 构建支持Windows, Linux, MacOS跨平台桌面应用 > > 需要会前端技术栈和略懂Go语言 ### 特性 > - 开发环境简单,编译速度快,只需要Go开发环境和Energy依赖的CEF二进制框架 > - 跨平台: 一套代码可以打包成 Windows, 国产UOS、Deepin、Kylin, MacOS, Linux > - 语言职责 >> - Go: Go负责窗口创建、CEF配置和功能实现、各种UI组件创建、系统低层调用,和JS处理不了的功能如: 文件流、安全加密、高性能处理等等,可作为纯后端开发 >> - Web: HTML + CSS + JavaScript 负责客户端界面的功能, 做出任意你想要的界面,可作为纯前端开发 > - 前端技术: 支持主流前端框架例如:Vue、React、Angular, 或纯HTML+CSS等等 > - 事件驱动: 高性能事件驱动, 基于IPC通信,实现Go和Web端很方便功能调用以及数据交互 #### 事件驱动 Go和Web交互 > - 在Go和Web技术基于IPC通信,可以在Go和Web交互数据、事件触发, 可以不使用 http 接口,就像调用语言本身函数一样简单 > - 在Go中定义JS绑定类型变量,提供给Web端JS使用,实现Go变量或结构对象数据同步 > - 在JS监听事件,在Go中触发JS事件,以达到Go调用JS函数和数据传递 > - 在Go监听事件,在JS中触发Go事件,以达到JS调用Go函数和数据传递 ### [开发环境](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a) #### 基本需求 > - golang >= 1.18 > - energy 开发环境 > > 使用 energy 命令行工具自动安装开发环境 > > 获取 [energy](https://github.com/energye/energy) > 项目,或直接使用预编译命令行工具 [下载地址](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a) > 1. go get github.com/energye/energy > > 进入 [energy](https://github.com/energye/energy) 命令行目录 > 2. cd energy/cmd/energy > > 安装命令行工具 > 3. go install > > 执行安装命令 > 4. energy install . ### 入门指南 - [传送门](https://energy.yanghy.cn) * [教程](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25) * [示例](https://energy.yanghy.cn/#/example/6342d986401bfe4d0cdf6067/634d3bd5a749ba0318943eb6) * [文档](https://energy.yanghy.cn/#/document/6342d9a4401bfe4d0cdf6069/0) ### 快速入门 > 使用 [energy-cmd](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a) 命令行工具自动安装环境依赖 `energy install .` > > 以example/simple示例为例 > > 更新最新发布版本依赖 > > 2. go mod tidy > > 在Goland(或其它开发工具)中运行simple 或 go run simple.go ### example/simple 示例代码 ```go package main import ( "github.com/energye/energy/v2/cef" ) func main() { //全局初始化 每个应用都必须调用的 cef.GlobalInit(nil, nil) //创建应用 cefApp := cef.NewApplication() //指定一个URL地址,或本地html文件目录 cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn" //运行应用 cef.Run(cefApp) } ``` --- ### 系统支持 ![Windows](https://img.shields.io/badge/windows-supported-success.svg?logo=Windows&logoColor=blue) ![MacOSX](https://img.shields.io/badge/MacOSX-supported-success.svg?logo=MacOS) ![Linux](https://img.shields.io/badge/Linux-supported-success.svg?logo=Linux&logoColor=red) ##### 开源地址 - [Github](https://github.com/energye/energy) - [Gitee](https://gitee.com/energye/energy) ##### 官网 - [Energy](https://energy.yanghy.cn/#/)

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

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

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