Electron
2023-03-21
76
dialog 模块提供了api来展示原生的系统对话框,例如打开文件框,alert框,所以web应用可以给用户带来跟系统应用相同的体验.对话框例子,展示了选择文件和目录:var win = ...; // BrowserWindow in which to show the dialog
const dialog = require('electron').dialog;
console.log(dialog.showOpenDialog({ properties: [ 'open
2023-03-21
36
Electron 使用 gyp 来生成项目 ,使用 ninja 来构建项目. 项目配置可以在 .gyp 和 .gypi 文件中找到.Gyp 文件下面的 gyp 文件包含了构建 Electron 的主要规则 :atom.gyp 定义了 Electron 它自己是怎样被构建的.common.gypi 调整 node 的构建配置,来让它结合 Chromium 一起构建.vendor/brightray/brightray.gyp 定义了 brightray 是如何被构建的,并且包含了默认配置来连接到 Chrom
2023-03-21
71
BrowserWindow 类让你有创建一个浏览器窗口的权力。例如:// In the main process.
const BrowserWindow = require('electron').BrowserWindow;// Or in the renderer process.
const BrowserWindow = require('electron').remote.BrowserWindow;var win = new BrowserWindow({ w
2023-03-21
54
当在界面中使用 window.open 来创建一个新的窗口时候,将会创建一个 BrowserWindow 的实例,并且将返回一个标识,这个界面通过标识来对这个新的窗口进行有限的控制.这个标识对传统的web界面来说,通过它能对子窗口进行有限的功能性兼容控制.想要完全的控制这个窗口,可以直接创建一个 BrowserWindow .新创建的 BrowserWindow 默认为继承父窗口的属性参数,想重写属性的话可以在 features 中设置他们.window.open(url[, frameName][, f
2023-03-21
39
Electron 的源代码主要依据 Chromium 的拆分约定被拆成了许多部分。为了更好地理解源代码,您可能需要了解一下 Chromium 的多进程架构。源代码的结构Electron
├──atom - Electron 的源代码
| ├── app - 系统入口代码
| ├── browser - 包含了主窗口、UI 和其他所有与主进程有关的东西,它会告诉渲染进程如何管理页面
| | ├── lib - 主进程初始化代码中 JavaScript 部分的代码
| | ├── ui - 不
2023-03-21
32
备注:Electron 的原名是 Atom Shell。与 NW.js 相似,Electron 提供了一个能通过 JavaScript 和 HTML 创建桌面应用的平台,同时集成 Node 来授予网页访问底层系统的权限。但是这两个项目也有本质上的区别,使得 Electron 和 NW.js 成为两个相互独立的产品。1. 应用的入口在 NW.js 中,一个应用的主入口是一个页面。你在 package.json 中指定一个主页面,它会作为应用的主窗口被打开。在 Electron 中,入口是一个 JavaScr
2023-03-21
27
ipcRenderer 模块是一个 EventEmitter 类的实例. 它提供了有限的方法,你可以从渲染进程向主进程发送同步或异步消息. 也可以收到主进程的响应.查看 ipcMain 代码例子.消息监听ipcRenderer 模块有下列方法来监听事件:ipcRenderer.on(channel, listener)channel Stringlistener Function监听 channel, 当有新消息到达,使用 listener(event, args...) 调用 listener .ipc
2023-03-21
38
desktopCapturer 模块可用来获取可用资源,这个资源可通过 getUserMedia 捕获得到.// 在渲染进程中.
var desktopCapturer = require('electron').desktopCapturer;desktopCapturer.getSources({types: ['window', 'screen']}, function(error, sources) {if (error) throw error;f