energy/README.md
2022-11-17 15:57:47 +08:00

4.3 KiB
Raw Blame History

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

中文 | English


简介

Energy 使用JavaScript、HTML和CSS 构建桌面应用的框架, 是Golang基于 CEFGolcl 开发的框架,内嵌 Chromium CEF 二进制

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

也可以使用 EnergyGolcl 单独构建小巧的系统UI跨平台应用程序

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

在Go和Web端技术中基于IPC通信你可以很方便的在Go和Web端交互数据,函数调用以及事件调用, 不需要Web Service接口就像调用语言本身函数一样简单

在Go中还可以定义JS变量提供给Web端JS使用实现Go变量或结构对象数据同步

在Go中调用JS函数、JS事件监听实现GO与JS的功能交互

在JS中调用Go函数Go的监听事件实现JS与GO的功能交互

windows 32 bits

安装 CEF和Energy框架压缩包使用说明

入门指南-网址

快速入门

基本需求

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

授权

License GPL 3.0