energy/README.md
杨红岩 1f54c98c96 demo
2022-10-18 17:18:13 +08:00

7.0 KiB
Raw Blame History

Energy 是Go基于CEF的构建桌面应用的框架

中文 | English


简介

Energy 是使用JavaScript,HTML,CSS 构建桌面应用的框架, 是基于 GolclCEF4Delphi 纯Go语言开发的框架,内嵌 Chromium CEF 二进制

可以让你使用web前端开发技术构建在Windows, Linux, MacOS跨平台的应用

也可以使用 EnergyGolcl 构建使用系统级本地UI和使用Web前端技术跨平台的应用

支持 Windows_32、64 bits, Linux_x86_64 bits, MacOS_x86_64 bits

windows 32 bits CEF(105.3.39)和Energy动态链接库压缩包下载

这里CEF是Chromium提供的下载地址, Energy是预编译好的动态链接库

CEF Energy
Windows 32 bits windows 32 bits
Windows 64 bits windows 64 bits
Linux x86 64 bits linux x86 64 bits
MacOSX x86 64 bits macOSX x86 64 bits

动态链接库压缩包使用说明

压缩包文件windows和linux只用到了Release和Resources目录内的文件, MacOSX只用到了Release目录内文件
windows和linux使用

下载CEF和Energy对应版本的动态链接库压缩包

  1. 新建文件夹ChromiumDemo(文件夹名称自己随意取)
  2. CEF 提取Release和Resources目录文件到ChromiumDemo文件夹
  3. Energy 提取动态链接库到ChromiumDemo文件夹
  4. 最终的目录结构

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

  1. 最后把Go编写的程序编译好执行文件放到ChromiumDemo目录
MacOSX使用

下载CEF和Energy对应版本的动态链接库压缩包

  1. 新建文件夹ChromiumDemo(文件夹名称自己随意取)
  2. CEF 提取Release目录文件到ChromiumDemo文件夹
  3. Energy 提取动态链接库到ChromiumDemo文件夹
  4. 最终的目录结构

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示例