Electron实现第一个应用 "hello world"
一. 什么是Electron? 它和NW.js的区别是什么?
Electron是GitHub开发的桌面应用开发框架,它支持使用HTML、CSS、JavaScript来构建跨平台的桌面应用。
Electron和NW.js(NW.js是什么可以百度下)的区别是:
1. 整合Chromium 和 Node.js的方式不同。
在NW.js中,Chromium是直接被打补丁打进去的。因此 Node.js 和 Chromium 共享了同一个javascript上下文。
在Electron中,它不是以补丁的形式将Chromium整合进去的。而是通过Chromium的Content API 以及使用了 Node.js的node_bindings。
在NW.js中它维护一个共享的javascript上下文。而在 Electron中它有多个独立的javascript上下文(比如:它有一个后端的main进程,作用是负责启动运行应用的视窗,另一个是renderer进程,它是负责具体的应用视窗)。
2. 入口文件不同。
NW.js 一般是使用HTML作为入口文件,而Electron使用的是javascript作为入口文件。Electron将加载的应用视窗的职责委派给javascript。
二. Electron的应用场景有哪些?
1. Slack: 它是一款企业沟通协作工具,那么我们可以使用 Electron来做这方面的事情。并且可以支持音频或视频功能等。
2. Light Table: 它是一款代码编辑器,我们也可以使用Electron做代码编辑器的桌面应用程序。
3. Game Dev Tycoon: 它是一款模拟类游戏,也可以使用做游戏相关的产品。
4. Gitter: 它是一种服务,它为GitHub上的开源项目提供聊天室的功能。它可以让用户使用其Github账号登录,然后访问项目或组织的聊天室。
5. Macaw: 他是一款创新的所见即所得的web设计工具。它可以让web设计师直接为他们的网站做视觉设计,在以前,他们都要先在图片编辑软件中做好,然后再生成对应的HTML和CSS代码,现在我们可以使用该工具直接生成网站代码。省去了将视觉设计稿转成网站这一步。但是它和我们以前的Dreamweaver不同的是,它可以直接生成语义化的HTML和CSS代码。
三. 使用Electron先来实现一个简单的 "hello world" 应用程序
要使用 Electron的话,首先我们需要安装该插件包,我们可以使用npm来安装它,安装命令如下:
npm install -g electron
如上安装完成后,我们来看看 一个 electron应用需要包含如下三个文件:
|------ electron-demo
| |--- index.html
| |--- main.js
| |--- package.json
package.json 基本代码如下:
{
"name": "hello-world",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
如上 在electron中入口文件就是main.js, 默认是以js文件作为入口文件的,它以NW.js的区别是:NW.js 是以html文件作为入口的。
main.js 代码如下:
'use strict'; // 引入 electron模块
const electron = require('electron'); // 创建 electron应用对象的引用 const app = electron.app;
const BrowserWindow = electron.BrowserWindow; // 定义变量 对应用视窗的引用
let mainWindow = null; // 监听视窗关闭的事件(在Mac OS 系统下是不会触发该事件的)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
}); // 将index.html 载入应用视窗中
app.on('ready', () => {
/*
创建一个新的应用窗口,并将它赋值给 mainWindow变量。
*/
mainWindow = new BrowserWindow(); // 载入 index.html 文件
mainWindow.loadURL(`file://${__dirname}/index.html`); // 当应用被关闭的时候,释放 mainWindow变量的引用
mainWindow.on('closed', () => {
mainWindow = null;
});
});
index.html 代码如下:
<html>
<head>
<title>Hello World</title>
</head>
<style>
body {
background-image: linear-gradient(45deg, #ead790 0%, #ef8c53 100%);
text-align: center;
}
button {
background: rgba(0, 0, 0, 0.40);
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.5);
border-radius: 8px;
color: white;
padding: 10px 20px;
border: none;
font-family: 'Roboto', sans-serif;
font-size: 14px;
position: relative;
top: 40%;
cursor: pointer;
outline: none;
}
button:hover {
background: rgba(0, 0, 0, 0.3);
}
</style>
<body>
<button onclick="sayHello()">Say Hello</button>
<script type="text/javascript">
function sayHello() {
alert('Hello world');
}
</script>
</body>
</html>
如上代码编写完成后,我们现在就可以来通过命令运行该应用程序了。我们先进入我们项目中的根目录下,然后执行如下命令即可:
electron .
如下图所示:
运行完成后,会打开一个视窗口,当我们单击应用程序中的按钮时候,会弹出窗口,如下图所示:
Electron还有如下特性:
1. 支持创建多视窗,而且每个视窗都有自己独立的javascript上下文。
2. 通过shell和screen API 整合了桌面操作系统的特性。
3. 支持获取计算机电源状态。
4. 支持阻止操作系统进入省点模式。(对于演示文稿比较有用)
5. 支持创建托盘应用。
6. 支持创建菜单和菜单项。
7. 支持为应用更新来自动更新应用代码。
8. 支持汇报程序崩溃。
9. 支持自定义Dock菜单项。
10.支持操作系统通知。
11.支持为应用创建启动安装器。
Electron实现第一个应用 "hello world"的更多相关文章
- Electron-使用Electron开发第一个应用
使用Electron开发第一个应用 Electron 应用的目录结构如下: app/ ├── package.json ├── main.js └── index.html 新建一个app文件夹 将这 ...
- Electron 入门第一篇
官网:http://electronjs.org/docs/tutorial/application-architecture 转载:https://blog.csdn.net/qq_33323731 ...
- (译)通过 HTML、JS 和 Electron 创建你的第一个桌面应用
原文:Creating Your First Desktop App With HTML, JS and Electron 作者:Danny Markov 近年来 web 应用变得越来越强大,但是桌面 ...
- 第一章 Electron介绍 | Electron in Action(中译)
Github 官方地址 代表作: Visual Studio Code Atom - Code editor. Github开源的代码编辑器,Electron起源地 Visual Studio Cod ...
- 如何用Electron Js创建第一个应用Hello World
什么是Electron Node.js和Chromium的结合品.允许只使用HTML,CSS和JavaScript来开发跨平台桌面应用. 编写第一个Electron程序(Hello World) 在开 ...
- electron安装到第一个实例
1.node.js下载,然后安装.下载地址:链接:http://pan.baidu.com/s/1o7TONhS 密码:fosa 2.cmd下输入:npm install electron-prebu ...
- Electron中Jquery的引入方式
原文链接http://huisky.com/blog/16122220522957 Electron默认启用了Node.js的require模块,而jQuery等新版本框架为了支持commondJS标 ...
- electron之Windows下使用 html js css 开发桌面应用程序
1.atom/electron github: https://github.com/atom/electron 中文文档: https://github.com/atom/electron/tree ...
- Linux下Electron的Helloworld
什么是Electron Electron 框架的前身是 Atom Shell,可以让你写使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序.它是基于io.js 和 Chromi ...
随机推荐
- nodejs的作用【转】
来源地址:https://www.zhihu.com/question/33578075/answer/56951771 如果你去年注意过技术方面的新闻,我敢说你至少看到node.js不下一两次.那么 ...
- [Powershell]导出指定的定时计划任务
<# .NOTES =========================================================================== Created wit ...
- Swagger简单介绍
一句话介绍 Swagger Swagger是一个接口文档生成工具,同时提供接口测试调用的辅助功能. 关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原 ...
- visual studio远程调试 remote debugger
下载远程debug工具: https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging?view=vs-2015 或者 ...
- ECMAScript 初探 - 基础篇
ECMAScript 语言的标准是由 Netscape.Sun.微软.Borland 等公司基于 JavaScript 和 JScript 锤炼.定义出来的. ECMAScript 仅仅是一个描述,定 ...
- 使用GitHub的仓库以及介绍
一.创建仓库 假如Responsitory name是Hello-World Description一栏中可以设置仓库的说明. Public, Private 在这一栏可以选择Public还是Pri ...
- 项目Gradle版本从4.4升级到4.6
一.背景 Gralde版本与AGP(Android Gradle Plugin)版本具有一定的对应关系,原因在于AGP实质上作为Gradle的插件,依赖于Gradle作为宿主.因此,不同的AGP版本需 ...
- Markdown
Cygwin Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Markdown具有一系列衍生版本,用于扩展Markdown ...
- SQL Server merge用法
有两个表名:source 表和 target 表,并且要根据 source 表中匹配的值更新 target 表. 有三种情况: source 表有一些 target 表不存在的行.在这种情况下,需要将 ...
- 记录一次排查使用HttpWebRequest发送请求的发生“基础连接已关闭:接收时发生错误”异常问题的过程
描述:某次更新程序,需要给测试员MM测试,之前都是正常的,更新后给MM测试就报异常System.Net.WebException 基础连接已经关闭:接收时发生错误 -------> System ...