建网站程序工具,wordpress搭建视频分享,最近最新在线观看免费高清完整版,福建建设厅网站介绍 | electron-egg
electron-egg: 一个入门简单、跨平台、企业级桌面软件开发框架。
electron-egg是一个基于Electron和Egg.js的框架#xff0c;可以用于快速构建跨平台的桌面应用程序。
1.兼容平台#xff1a;electron-egg可以在Windows、MacOS和Linux等多个平台上运行…介绍 | electron-egg
electron-egg: 一个入门简单、跨平台、企业级桌面软件开发框架。
electron-egg是一个基于Electron和Egg.js的框架可以用于快速构建跨平台的桌面应用程序。
1.兼容平台electron-egg可以在Windows、MacOS和Linux等多个平台上运行。
2.简单易用electron-egg提供了一些简单易用的API窗口管理、菜单管理、文件操作等功能。
3.可定制化electron-egg提供了丰富的插件和扩展机制方便进行高度定制化。
安装
# 下载
git clone https://gitee.com/dromara/electron-egg.git# 安装依赖
npm install# 启动
npm run start
project
├── package.json npm包配置
├── bulid 打包用的资源和脚本├── icons 软件图标打包用到├── extraResources 额外资源目录
├── electron 主进程服务├── addon 插件目录├── example demo插件代码示例├── config 配置文件├── config.default.js 默认配置都会加载├── config.local.js dev环境加载├── config.prod.js 生产环境加载├── encrypt.js 加密配置文件├── builder.json 打包配置├── controller 控制器├── service 业务层├── preload 预加载在程序启动时加载如托盘、自动升级等功能要提前加载代码├── jobs 任务
├── frontend 前端目录demo是用vue编写的
├── out 打包后生成的可执行文件├── latest.yml 自动升级文件├── xxx.exe window应用安装包├── xxx.exe.blockmap window应用增量升级包├── xxx.dmg mac应用安装包├── xxx.deb linux应用安装包后缀有多种
├── logs 日志
├── main.js 入口文件
├── public 资源目录├── dist 前端资源会移动到这里生产环境加载├── electron 业务js加密后的文件├── html 一些模板├── images 一些图片
├── data 内置数据库文件├── system.json 框架使用的数据库├── demo.json 示例json数据库├── sqlite-demo.db 示例sqlite数据库
// 引入基础 Application 类
const { Application } require(ee-core);class Index extends Application {constructor() {super();}/*** core app have been loaded* 加载* config - service - controller - socket - ready()*/async ready () {// do some things}/*** electron app ready* 加载以下事件* app.on(second-instance)* app.whenReady().then() 该事件会创建 mainWindow* app.on(window-all-closed)* app.on(before-quit)* 然后触发* - electronAppReady()*/async electronAppReady () {// do some things}/*** main window have been loaded* mainWindow 被创建后加载* windowReady() - addon - preload*/async windowReady () {// do some things// 延迟加载无白屏const winOpt this.config.windowsOption;if (winOpt.show false) {const win this.electron.mainWindow;win.once(ready-to-show, () {win.show();})}}/*** before app close*/ async beforeClose () {// do some things}
}Index.toString () [class Index];
module.exports Index;
控制器
const { Controller } require(ee-core);
const Services require(ee-core/services);/*** 示例控制器* class*/
class ExampleController extends Controller {constructor(ctx) {super(ctx);}/*** 所有方法接收两个参数* param args 前端传的参数* param event - ipc通信时才有值。详情见控制器文档*//*** test*/async test (args, event) {// 前端参数const params args;// 调用serviceconst result await Services.get(example).test(electron);// 主动向前端发请求// channel 前端ipc.on()监听的路由const channel controller.example.something// IpcMainInvokeEventevent.reply(channel, {age:21})// IpcMainEventevent.sender.send(${channel}, data)// 返回数据const data {}return data;}
}
服务层
const { Service } require(ee-core);
const Services require(ee-core/services);/*** 示例服务* class*/
class ExampleService extends Service {constructor(ctx) {super(ctx);}/*** test*/async test (args, event) {let obj {status:ok,params: args}// 调用其它serviceServices.get(framework).test(egg);// 主动向前端发请求// channel 前端ipc.on()监听的路由const channel controller.example.something// controller 传入 event// IpcMainInvokeEventevent.reply(channel, {age:21})// IpcMainEventevent.sender.send(${channel}, {age:21})return obj;}
}ExampleService.toString () [class ExampleService];
module.exports ExampleService;