7.0 KiB
Energy 是Go基于CEF的构建桌面应用的框架
中文 | English
简介
Energy 是使用JavaScript,HTML,CSS 构建桌面应用的框架, 是基于 Golcl 和 CEF4Delphi 纯Go语言开发的框架,内嵌 Chromium CEF 二进制
可以让你使用web前端开发技术构建在Windows, Linux, MacOS跨平台的应用
也可以使用 Energy 和 Golcl 构建使用系统级本地UI和使用Web前端技术跨平台的应用
支持 Windows_32、64 bits, Linux_x86_64 bits, MacOS_x86_64 bits
CEF(105.3.39)和Energy动态链接库压缩包下载
这里CEF是Chromium提供的下载地址, Energy是预编译好的动态链接库
CEF | Energy |
---|---|
Windows 32 bits | |
Windows 64 bits | |
Linux x86 64 bits | |
MacOSX x86 64 bits |
动态链接库压缩包使用说明
压缩包文件windows和linux只用到了Release和Resources目录内的文件, MacOSX只用到了Release目录内文件
windows和linux使用
下载CEF和Energy对应版本的动态链接库压缩包
- 新建文件夹ChromiumDemo(文件夹名称自己随意取)
- CEF 提取Release和Resources目录‘内’文件到ChromiumDemo文件夹
- Energy 提取动态链接库到ChromiumDemo文件夹
- 最终的目录结构
ChromiumDemo文件夹目录
locales
cef_sandbox.lib
chrome_100_percent.pak
chrome_200_percent.pak
chrome_elf.dll
d3dcompiler_47.dll
icudtl.dat
libcef.dll
libcef.lib
libEGL.dll
libGLESv2.dll
liblcl.dll
resources.pak
snapshot_blob.bin
v8_context_snapshot.bin
vk_swiftshader.dll
vk_swiftshader_icd.json
vulkan-1.dll
- 最后把Go编写的程序编译好执行文件放到ChromiumDemo目录
MacOSX使用
下载CEF和Energy对应版本的动态链接库压缩包
- 新建文件夹ChromiumDemo(文件夹名称自己随意取)
- CEF 提取Release目录‘内’文件到ChromiumDemo文件夹
- Energy 提取动态链接库到ChromiumDemo文件夹
- 最终的目录结构
ChromiumDemo文件夹目录
Chromium Embedded Framework.framework
cef_sandbox.a
liblcl.dylib
入门指南-网址
快速入门
基本需求
golang >= 1.9.2
下载对应平台的CEF和Energy的动态链接库.并将其解压至任意目录.
以example/simple示例为例
安装energy依赖 go get github.com/energye/energy
或者使用 go mod init, go mod tidy
运行simple
打包应用程序 Energy 没有打包模块, windows你可以使用(MSI或Inno Setup)和其它绿色打包工具, linux下deb安装包等, MacOS默认开发时会生成.app包或者自行定制.app包
example/simple 示例代码
package main
import (
"embed"
"fmt"
"github.com/energye/energy/cef"
"github.com/energye/golcl/lcl"
)
//go:embed resources
var resources embed.FS
//这是一个简单的窗口创建示例
func main() {
//全局初始化 每个应用都必须调用的
cef.GlobalCEFInit(nil, &resources)
//可选的应用配置
cfg := cef.NewApplicationConfig()
//指定chromium的二进制包框架根目录, 不指定为当前程序执行目录
cfg.SetFrameworkDirPath("/xxxx/xxxx/ChromiumDemo")
//创建应用
cefApp := cef.NewApplication(cfg)
//主窗口的配置
//指定一个URL地址,或本地html文件目录
cef.BrowserWindow.Config.DefaultUrl = "https://energy.yanghy.cn"
//窗口的标题
cef.BrowserWindow.Config.Title = "energy - 这是一个简单的窗口示例"
//窗口宽高
cef.BrowserWindow.Config.Width = 1024
cef.BrowserWindow.Config.Height = 768
//chromium配置
cef.BrowserWindow.Config.SetChromiumConfig(cef.NewChromiumConfig())
//创建窗口时的回调函数 对浏览器事件设置,和窗口属性组件等创建和修改
cef.BrowserWindow.SetBrowserInit(func(event *cef.BrowserEvent, browserWindow *cef.TCefWindowInfo) {
//设置应用图标 这里加载的图标是内置到执行程序里的资源文件
lcl.Application.Icon().LoadFromFSFile("resources/icon.ico")
fmt.Println("SetBrowserInit")
})
//创建窗口之后对对主窗口的属性、组件或子创建的创建
cef.BrowserWindow.SetBrowserInitAfter(func(browserWindow *cef.TCefWindowInfo) {
fmt.Println("SetBrowserInitAfter")
})
//运行应用
cef.Run(cefApp)
}
安装
- 下载对应平台CEF和Energy的二进制压缩包
- 安装energy依赖 go get github.com/energye/energy 或者使用 go mod init, go mod tidy
- 创建GO程序应用, 参考入门指南和example示例