Electron入门笔记
来源:互联网 发布:ps软件中文免费下载 编辑:程序博客网 时间:2024/05/20 13:14
electron号称是可以通过html, css, javascript构建跨平台的桌面应用,
自己试了下, 感觉还是不错的, 可以通过js写桌面应用, 再次让js扩大了应用领域.
快速启动
官方提供了一个种子工程electron-quick-start, 可以帮我们快速搭建环境.
只需要简单几步, 一个操作系统原生窗口就出现了:
git clone https://github.com/electron/electron-quick-startcd electron-quick-start/# 如果网速慢, 就用阿里的cnpmcnpm inpm start
目录结构如下:
.└── electron-quick-start ├── index.html ├── LICENSE.md ├── main.js ├── node_modules ├── package.json ├── README.md └── renderer.js
我们主要关心: index.html, main.js, renderer.js.
Main Process & Renderer Process
这里译为主进程和渲染进程.
为了感受下electron的魅力, 我们来弹个alert试试.
// 在main.js中添加function createWindow () { ... alert(1); ...}
然后npm start
然后居然报错:
Uncaught Exception:ReferenceError: alert is not defined
发现main.js中并不是我们平时写的js那样, 它会负责创建主进程.
而renderer.js(其实起什么名字都可以, 它是在index.html中引入的其实),
负责创建渲染进程, 这里边就可以操作dom, bom等, 可以想像成chrome的一个个标签页.
在renderer.js中添加alert(1);
, 然后npm start
发现可以正常运行.
主进程和渲染进程通信
主进程 -> 渲染进程
// main.js, 注意要在mainWindow创建之后mainWindow.webContents.on('did-finish-load', () => { mainWindow.webContents.send('main-process-messages', 'webContents did-finish-load');});// renderer.jslet electron = require('electron');const { ipcRenderer } = electron;// 渲染进程设置监听ipcRenderer.on('main-process-messages', function(e, arg) { console.log('ipcRenderer receiver: ' + arg);});
这里要说下, 主进程的console.log是会打印在cli上,
而渲染进程的console.log会打印在DevTools上, 所以main.js中要有这句:
// Open the DevTools.mainWindow.webContents.openDevTools()
渲染进程 -> 主进程
// renderer.jsipcRenderer.send('asynchronous-message', 'msg from ipcRenderer');// main.jsipcMain.on('asynchronous-message', function(e, arg) { console.log('ipcMain received: ' + arg);});
打包
cnpm i electron-packager -g# 在项目根目录执行, 打包到与项目同级目录electron-packager . helloApp --out ../# 查看结果[root@localhost electron-quick-start]# cd ..[root@localhost electron]# lselectron-quick-start helloApp-linux-x64 cd helloApp-linux-x64/# 执行生成的app ./helloApp
具体用法请参看: https://github.com/electron-userland/electron-packager
参考:
https://segmentfault.com/a/1190000006207600
欢迎补充指正!
阅读全文
0 0
- Electron入门笔记
- Electron入门笔记:安装篇
- 【Electron】Electron开发入门
- electron入门
- electron入门
- Electron 快速入门
- Electron开发入门
- electron的入门学习
- Electron入门资源
- electron入门心得
- Electron 快速入门
- electron 研究笔记
- electron ts 使用笔记
- (一)Electron入门介绍
- Angular+Electron+VSCode的桌面应用开发入门笔记(1)
- Angular+Electron+VSCode的桌面应用开发入门笔记(1)
- 【Electron】Electron开发入门(一):开发环境搭建
- 【Electron】Electron开发入门(二):创建项目Hello Word
- 单例和多例的区别
- 反射
- AngularJs+bootstrap(前台购物车)
- 深入学习main()和UIApplication
- uefi模式下重装系统
- Electron入门笔记
- 网络协议之路由交换篇--OSPF协议
- 国赛建模小白入门介绍篇(一)
- [codeforces] Gym
- 互联网公司面试题以及范围
- ssm分布式架构电商项目(四)
- 安装centos6.5 minimal 镜像步骤以及中间出现的各种问题
- 使用JDBC做一个简单的登录,注册页面!
- HashMap和Hashtable的区别