Energy框架技术文档
1. 项目概述
Energy是一个基于Go语言开发的GUI框架,整合了LCL(Lazarus Component Library)和CEF(Chromium Embedded Framework)技术,用于开发跨平台的桌面应用程序。支持Windows、MacOS和Linux三大操作系统,既能创建轻量级原生应用,也能构建功能丰富的混合应用。
2. 安装指南
2.1 基础环境要求
- Go语言环境 >= 1.18版本
- Energy框架依赖(CEF, liblcl)
2.2 自动安装
推荐使用Energy命令行工具自动安装开发环境:
energy install
该命令会自动完成以下工作:
- 检测并安装必要的Go环境
- 下载CEF和LCL相关依赖库
- 配置系统环境变量
3. 项目使用说明
3.1 快速开始
只需三个步骤即可运行一个简单应用:
- 初始化项目:
energy init
- 创建main.go文件:
package main
import (
"github.com/energye/energy/v2/cef"
)
func main() {
cef.GlobalInit(nil, nil)
app := cef.NewApplication()
cef.BrowserWindow.Config.Url = "https://energye.github.io"
cef.Run(app)
}
- 运行应用:
go run main.go
3.2 项目构建
3.2.1 基本构建
energy build
3.2.2 打包发布
energy package
支持多种打包格式:
- Windows: 使用nsis生成exe安装包
- Linux: 使用dpkg生成deb安装包
- MacOS: 生成xxx.app应用包
4. API使用文档
4.1 核心API
4.1.1 应用初始化
// 全局初始化
cef.GlobalInit(nil, nil)
// 创建应用实例
app := cef.NewApplication()
4.1.2 浏览器窗口配置
browserWindow := cef.BrowserWindow.Config{
Title: "Energy Demo",
Url: "https://energye.github.io",
Width: 1024,
Height: 768,
IconFS: "resources/icon.png", // 图标文件路径
}
4.1.3 事件处理
// 窗口关闭事件
browserWindow.SetOnClose(func() bool {
fmt.Println("窗口即将关闭")
return true // 返回true允许关闭,false阻止关闭
})
// 页面加载完成事件
browserWindow.SetOnLoadEnd(func() {
fmt.Println("页面加载完成")
})
4.2 高级功能API
4.2.1 Go与JavaScript交互
// 注册Go函数供JS调用
browserWindow.JsBindFunction("goFunction", func(args []interface{}) interface{} {
fmt.Println("从JS调用的参数:", args)
return "来自Go的返回值"
})
// 在JS中调用:
// energy.goFunction("参数").then(response => console.log(response))
4.2.2 本地资源加载
// 设置本地资源目录
browserWindow.SetLocalResource("resources", "local:///")
5. 项目安装方式
5.1 手动安装
- 安装Go语言环境(>=1.18)
- 下载Energy框架:
go get github.com/energye/energy/v2
- 下载CEF和LCL依赖库
- 配置环境变量
5.2 系统支持
| 操作系统 | 32位支持 | 64位支持 |
|---|---|---|
| Windows | ✔️ | ✔️ |
| MacOSX (Intel) | ❌ | ✔️ |
| MacOS (Apple芯片) | ❌ | ✔️ |
| Linux | ✔️ | ✔️ |
| Linux ARM | ✔️ | ✔️ |
6. 项目特点
- 跨平台支持:一套代码可编译为Windows、Linux和MacOS应用
- 混合开发:结合Go的高性能和Web的灵活UI
- 前端技术自由:支持Vue、React、Angular等主流框架
- 高效通信:基于IPC的高性能事件驱动通信机制
- 资源灵活:支持加载本地资源或内嵌资源文件
7. 注意事项
- 开发前请确保已正确安装所有依赖
- 首次运行可能需要下载CEF相关资源,请保持网络畅通
- 打包发布时注意包含所有必要的资源文件
- 跨平台开发时注意各系统的特性差异
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



