codecamp

Electron 教程简介

所有的 Node.js's built-in modules 在 Electron 中都可用,并且所有的 node 的第三方组件也可以放心使用(包括自身的模块)。

Electron 也提供了一些额外的内置组件来开发传统桌面应用。一些组件只可以在主进程中使用,一些只可以在渲染进程中使用,但是也有部分可以在这 2 种进程中都可使用。

基本规则:GUI 模块或者系统底层的模块只可以在主进程中使用。要使用这些模块,你应当很熟悉主进程 vs 渲染进程脚本的概念。

主进程脚本看起来像个普通的 nodejs 脚本

const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;

var window = null;

app.on('ready', function() {
  window = new BrowserWindow({width: 800, height: 600});
  window.loadURL('https://www.w3cschool.cn');
});

渲染进程和传统的 web 界面一样,除了它具有使用 node 模块的能力:

<!DOCTYPE html>
<html>
<body>
<script>
  const remote = require('electron').remote;
  console.log(remote.app.getVersion());
</script>
</body>
</html>

如果想运行应用,参考 Run your app

解构任务

如果你使用的是 CoffeeScript 或 Babel,你可以使用 destructuring assignment 来让使用内置模块更简单:

const {app, BrowserWindow} = require('electron');

然而如果你使用的是普通的 JavaScript,你就需要等到 Chrome 支持 ES6了。

使用内置模块时禁用旧样式

在版本 v0.35.0 之前,所有的内置模块都需要按照 require('module-name') 形式来使用,虽然它有很多弊端,我们仍然在老的应用中友好的支持它。

为了完整的禁用旧样式,你可以设置环境变量 ELECTRON_HIDE_INTERNAL_MODULES :

process.env.ELECTRON_HIDE_INTERNAL_MODULES = 'true'

或者调用 hideInternalModules API:

require('electron').hideInternalModules()
Electron 快速入门
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }