系列简介:本系列文章首先围绕Electron框架的关键知识点进行详细讲解,然后对DEMO程序进行分析,让前端开发人员对使用Electron开发桌面应用程序有一个初步的了解。该系列文章更新周期为每周1~2篇。
阅读时间:约5min
Что такое Электрон
определение
Electron — это фреймворк, позволяющий разрабатывать кроссплатформенное настольное приложение с использованием традиционных фронтенд-технологий (Nodejs, Javascript, HTML, CSS). Упомянутое здесь настольное приложение относится к программе, работающей в системах Windows, OSX и Linux.
история
В 2013 году вышел редактор Atom, и Electron постепенно стал известен как базовый фреймворк для его реализации.Он был открыт в 2014 году, когда еще называлсяAtom Shell
.
В течение следующих нескольких лет Electron постоянно обновлялся и дорабатывался, и почти каждый год происходила важная веха.
- 11 апреля 2013 года Electron стартовал под названием Atom Shell.
- 6 мая 2014 года исходный код Atom и Atom Shell был открыт под лицензией MIT.
- 17 апреля 2015 года Atom Shell была переименована в Electron.
- 11 мая 2016 года была выпущена версия 1.0.
- 20 мая 2016 г. Разрешена отправка пакетов в Mac App Store.
- 2 августа 2016 г., поддержка Магазина Windows.
В последней стабильной версии V3.x Electorn интегрирует Nodejs v10.2.0 и Chromium с ядром v66.0.3359.181.
Программное обеспечение на базе Electron
Электрон использовался во многих прикладных программах с открытым исходным кодом, среди которых редакторы Atom и VsCode, хорошо известные и используемые большинством программистов, реализованы на основе Electron. Попробуйте открыть VsCode, нажмите на меню справки切换开发人员工具
, вы можете увидеть наш знакомый инструмент разработчика Chrome в интерфейсе, как показано ниже.
низкоуровневая реализация
Поскольку сценарий приложения заключается в разработке приложений на системной платформе, нам нужна возможность вызывать собственные системные API во время разработки. Чтобы интерфейсный язык мог взаимодействовать с нижним уровнем, Electron интегрирует Nodejs+Chromium. Nodejs в основном отвечает за управление логикой основного потока приложения, базовое взаимодействие и другие функции, а Chromium в основном отвечает за бизнес-логику рендеринга окон потока. Основная структура выглядит следующим образом:
Эта архитектура позволяет обновлять версии Chromium по отдельности. Предполагая, что ваша программа в настоящее время использует версию Electron v3.x, эта версия Electron поставляется с Chromium версии 66. В настоящее время, если некоторые функции, которые вы используете, должны использовать версию Chromium 69, в дополнение к обновлению Electron до последней версии в целом, вы также можете обновить версию Chromium по отдельности.В официальной документации указан метод обновления.Обновите хром
Но в целом мы этого делать не рекомендуем, поскольку для успешного обновления требуется знание C и C++, а также определенное понимание базовой реализации Chromium. Даже если вы успешно обновите версию Chromium, общая стабильность программного обеспечения не может быть гарантирована.
зачем использовать
Взяв в качестве примера платформу Windows, большинство людей сначала подумают об использовании QT (C++), WPF (C#) и других языков для разработки приложений. Нельзя отрицать, что это уже очень зрелые решения для разработки. Однако давайте рассмотрим следующие два сценария:
- Компания хочет новое приложение, но технический персонал делает большую часть фронтенд-разработки.
- У компании изначально есть онлайн-веб-приложение, но она хочет запаковать оболочку и открывать ее прямо на рабочем столе, а заодно добавить некоторые функции для взаимодействия с системой
Для первого сценария разработчики в команде не знакомы с C++ и C#, хотя они могут изучить его сейчас, но техническое управление и управление проектами в целом станет неконтролируемым.
Для второго сценария требований к бизнес-логике приложения не так много, а настраивается только работающая среда с браузером, и настраивать C++ или C# разработчика только на это не стоит.
В обоих случаях было бы идеально, если бы существующие разработчики внешнего интерфейса могли справиться с этим напрямую.
Рождение Электрона предоставляет такую возможность. Это может помочь фронтенд-разработчикам быстро разрабатывать кроссплатформенные настольные приложения без изучения других языков и навыков.
как использовать
В следующих главах мы объясним, как использовать электрон для разработки на основе основных точек знаний и дополнены фактическими случаями. Здесь мы только кратко представим, как использовать электрон, чтобы написать классическую Hello World.
Сначала создайте новый каталог и инициализируйте npm.
mkdir helloword
npm init
Измените файл package.json и добавьте команду запуска запуска npm.
{
"name": "electron demo",
"version": "1.0.0",
"description": "",
"main": "main.js", //修改为main.js
"scripts": {
"start": "electron ." //增加start命令
},
"author": "",
"license": "ISC",
"dependencies": {
"electron": "^3.0.10"
}
}
Установить Электрон через npm
npm i electron --save-dev
Создайте main.js и index.html в корневом каталоге
main.js
const { app, BrowserWindow } = require('electron')
function createWindow () {
// 创建浏览器窗口
win = new BrowserWindow({ width: 800, height: 600 })
// 然后加载应用的 index.html。
win.loadFile('index.html')
}
app.on('ready', createWindow)
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
На этом все наши приготовления завершены, следующим шагом будет запуск!
npm run start
увидеть эффект
На этом краткое знакомство с Электроном подошло к концу, предположительно у всех есть некоторое представление об Электроне, и в следующих главах мы начнем собственно бой.