Electron_01
1、通过 https://electron.atom.io/ 下载 electron-v1.4.15-win32-x64.zip 之后
2、通过
asar pack “你的项目文件夹” app.asar 将项目压缩并改名为 app.asar
3、把自己的项目 放在 以上解压文件的 resource 文件夹下
4、点击 electron.exe 运行项目
实例项目:
Electron App的目录结构如下:
your-app/
├── package.json
├── main.js
└── index.html
其中的package.json
和Node Modules里表现的一样,而main.js
则是启动你App的脚本,它将会开启主进程。package.json
的一个例子:
{
"name" : "your-app",
"version" : "0.1.0",
"main" : "main.js"
}
注:当package.json
里不存在main
时,Electron将会默认使用index.js
main.js
应当创建一个窗口并处理系统事件。一个典型的例子如下:
'use strict';
const electron = require('electron');
const app = electron.app; // 控制App生命周期的模块
const BrowserWindow = electron.BrowserWindow; // 创建原生窗口的模块
// 保持对窗口对象的全局引用。如果不这么做的话,JavaScript垃圾回收的时候窗口会自动关闭
var mainWindow = null;
// 当所有的窗口关闭的时候退出应用
app.on('window-all-closed', function() {
// 在 OS X 系统里,除非用户按下Cmd + Q,否则应用和它们的menu bar会保持运行
if (process.platform != 'darwin') {
app.quit();
}
});
// 当应用初始化结束后调用这个方法,并渲染浏览器窗口
app.on('ready', function() {
// 创建一个窗口
mainWindow = new BrowserWindow({width: 800, height: 600});
// 加载index.js
mainWindow.loadURL('file://' + __dirname + '/index.html');
// 打开 DevTools
mainWindow.webContents.openDevTools();
// 窗口关闭时触发
mainWindow.on('closed', function() {
// 如果你的应用允许多个屏幕,那么可以把它存在Array里。
// 因此删除的时候可以在这里删掉相应的元素
mainWindow = null;
});
});
最后,index.html
是你最终要展示的页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
We are using node <script>document.write(process.versions.node)</script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
</body>
</html>
运行&生成应用
通过electron-prebuilt
运行
如果你通过npm
全局安装了electron-prebuilt
,那么在App文件目录下跑这句就可以运行它:
electron .
Electron_01的更多相关文章
随机推荐
- 【Java】【7】枚举类
用处:规范了参数的形式,更简洁易懂 实例: //消息类型 public enum MessageTypeEnum { AdminReward(1, "官方消息"), StoreRe ...
- Oracle11g温习-第十三章:索引
2013年4月27日 星期六 10:46 1.索引(Index)的功能:对记录进行排序,加快表的查询速度 2.索引的分类 1)B-tree 索引(默认) a.在一个大表上 b.建立在重复值比较少的 ...
- C# 3.0 / C# 3.5 系统内置委托
内置委托的定义声明: System.Func,代表有返回类型的委托: public delegate TResult Func<out TResult>(); public delegat ...
- Convert java.lang.String to oracle.jbo.domain.Date
https://www.techartifact.com/blogs/2013/09/converting-java-lang-string-to-oracle-jbo-domain-date.htm ...
- 基本数据类型list,tuple
一. 列表 1. 列表是一个可变的数据类型 列表由[]来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象. 列表可以装大量的数据 列表是有序的 2. 列表的索引和切片 列表和字符串一 ...
- [NOIP 2014TG D1T3] 飞扬的小鸟
题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...
- 关闭provider进程或者consumer进程后,会发生什么?
下图是 provider,consumer 和注册中心之间的拓扑图: provider,consumer 以及管理控制台都是 zookeeper 的客户端,所以都和 zk 建立了tcp连接. 以接口 ...
- snort安装使用教程(CentOS6.5)
官网:https://www.snort.org/ 官方文档:https://www.snort.org/documents 2.安装 2.1安装依赖 yum install flex bison - ...
- weblogic隐藏版本号教程(10.3.6为例)
隐藏版本号,如同大多数中间件都是取消Server头的发送:weblogic而言其默认就是不发送Server头的(即下边的“发送服务器标头”默认就是没钩选的). 写此教程的原因,一是以防Server头被 ...
- Linux使用ntpdate和ntpd进行时间同步
生产环境关联主机间常要求时间一致,若有NTP时间同步服务器,可配置各主机与时间同步服务器同步时间. 1.使用ntpdate进行时间同步 安装ntp客户端: yum install ntpdate 同步 ...