最近无意间看到了electron和nw的相关信息,感到很惊讶,因为学习前端也有一段时间了,竟然发现js还有这么强大的功能,因为js不仅可以写网页、写webapp、写hybrid,以及前不久出现的小程序,现在甚至已经可以用来写桌面应用了,从github上的star数已经快到50000就可以知道electron是多么火了,所以这里简单了解一下,以后有机会还是可以使用起来。

  electron官网

  github

  必看文章

  官网介绍如下:electron使用html、css、js构建跨平台的桌面应用。当前版本是1.6.11,所以还是很新的一个框架,但是就目前的star数而言,可知其发展前景还是很不错的。并且使用electron会比你想象的更加简单,因为如果你会写网站,那么你就可以构建一个桌面app。 Electron是一个使用html、css、js构建原生app的框架。它帮你解决了最困难的部分,所以你只需要关注于应用的核心部分即可。

  Electron三大特点:

  • 使用web技术更易构建 --- Electron使用chromium以及nodejs,这样就可以使用html、css、js来创建桌面app。
  • 开源。
  • 跨平台 --- Electron兼容Mac、Windows以及Linux平台,即使用Electron创建的app可以在这三个平台上跑起来。

 

  使用了Electron创建的桌面app

  最初使用Electron创建的是 Atom 编辑器,随后又开始被例如微软、脸书等大公司开始使用。

  

  

开始

  在https://electron-api-demos.githubapp.com/updates/ElectronAPIDemosSetup.exe这个链接中,我们可以下载使用Electron构建的app,这个app里介绍了使用electron的一些主要的功能。 如下所示:

  

这里可以看到,和chrome浏览器非常类似,因为Electron就是使用chromium的,但是我们是可以通过设置去掉上面的toolBar和右边的滑动栏的,以更加接近原生的app。

https://electron.atom.io/docs/api/ 这里是使用electron所需要的所有的api。

对于Electron我们主要可以使用的功能有:

  • 窗口:创建一个窗口、创建无边界窗口、控制窗口状态、控制窗口的获得焦点和失去焦点、在app崩溃时重新加载、在app挂起时重新加载。
  • 菜单:自定义的菜单、右键菜单、键盘快捷键设置。
  • 原生用户接口:打开文件、浏览器中打开一个链接、使用系统的对话框 --- 错误对话框、提示对话框、保存对话框。
  • 通信: 在主进程和渲染进程之间进行通信 --- 包括同步通信和异步通信, 和一个隐藏的窗口通信。
  • 系统: 获取app的位置信息、获取app的版本信息、获取系统信息、获取屏幕信息、使用剪切板等。
  • 媒体: 打印为PDF、截屏。

官方electron推荐app:https://github.com/electron/electron-quick-start

这个项目中就是最简单的electron构建的桌面应用。

electron --- 构建桌面应用的更多相关文章

  1. 使用 Electron 构建桌面应用(拖动控制篇)

    使用 Electron 构建桌面应用(拖动控制篇) 当窗口被定义了大小,我们也就是在自定义这个窗口,使得它不可拉伸没有框架,让它看起来就像一个真正的声效器浮在桌面上. 现在问题来了 – 要如何移动或者 ...

  2. AngularJS 和 Electron 构建桌面应用

    译]使用 AngularJS 和 Electron 构建桌面应用 原文: Creating Desktop Applications With AngularJS and GitHub Electro ...

  3. 使用 AngularJS 和 Electron 构建桌面应用

    GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨平台的桌面应用.它是io.js 运行时的衍生,专注于桌面应用而 ...

  4. 使用electron构建跨平台Node.js桌面应用

    最近,把团队内经常使用的一个基于Node.js制作的小工具给做成了可视化操作的桌面软件,使用的是electron,这里简单分享一下使用electron的一些经验和心得. 一.如何使用electron把 ...

  5. 使用electron构建跨平台Node.js桌面应用经验分享

    by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=6154 本文可全文转载,但需得到原作者书面许可,同时保留原作者和出处,摘要引流则随 ...

  6. electron自定义桌面应用的外观

    1. 控制应用视窗大小 构建桌面应用时,我们要考虑我们的应用程序需要如何让用户来使用,那么我们需要提供一个视窗,那么该视窗可以最大化展示,也可以最小化展示,当然我们也希望可以全屏运行. 在electr ...

  7. 使用Electron开发桌面应用

    Electron 框架的前身是 Atom Shell,可以让你写使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序.它是基于io.js 和 Chromium 开源项目,并用于在 ...

  8. Electron构建一个文件浏览器应用(二)

    在前一篇文章我们已经学习到了使用Electron来构建我们的文件浏览器了基础东西了,我们之前已经完成了界面功能和显示文件或文件夹的功能了,想看之前文章,请点击这个链接  .现在我们需要在之前的基础上来 ...

  9. Electron 实战桌面计算器应用

    前言 Electron 是一个搭建跨平台桌面应用的框架,仅仅使用 JavaScript.HTML 以及 CSS,即可快速而容易地搭建一个原生应用.这对于想要涉及其他领域的开发者来说是一个非常大的福利. ...

随机推荐

  1. CSS 实现等高布局以及多行文本垂直居中

    将display属性设置为table-cell,具有table的特点. 1.同行等高. 2.宽度自动调节. 相当于表格是td, <style type="text/css"& ...

  2. CodeForces 376F Tree and Queries(假·树上莫队)

    You have a rooted tree consisting of n vertices. Each vertex of the tree has some color. We will ass ...

  3. java中介者模式

    中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改.如果使用中介者模式,只需关心和Mediator类的关系 ...

  4. Mathcad操作tips:函数、符号计算

    函数 1. 利用“:”进行函数定义,如 2. 函数支持range variable输入,如 3. 常用数学函数可以在Insert - Function菜单中寻得. 4. 当不确定某个名字是否是函数名时 ...

  5. json的两种格式

    JSON: JavaScript Object Notation      (JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. 一.JSON对象:JSONObj ...

  6. C#线程和异步

    C#Thread学习 C#ThreadPool学习 C#Task学习 C#backgroundWorker c# 锁的使用 C#前台线程和后台线程区别 C#Async,await异步简单介绍 C#委托 ...

  7. “全栈2019”Java第三十二章:增强for循环Foreach语法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. 多继承c3算法

    一.mro mro即 method resolution order (方法解释顺序),主要用于在多继承时判断属性的路径(来自于哪个类). print(类.mro)得到属性路径按继承顺序 在pytho ...

  9. INSERT IGNORE 与INSERT INTO的区别,以及replace的用法

    INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据. 这样就可以保 ...

  10. PHP开发微信公众号(二)消息接受与推送

    上一篇文章我们知道怎么获取二维码,这样别人就可以扫描二维码来关注我们,但是别人关注后,发送消息,我们怎么进行相关处理? 这里我们就来学习下怎么处理处理这些消息,以及推送消息. 学习之前首先你需要有一个 ...