package.json
文件.npm init
初始化項目目錄npm init
// 或者
npm init -y
複製代碼
package.json
中編寫一個start
腳本{
"name": "helloelectron",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "electron .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
複製代碼
npm install --save electron
複製代碼
package.json
中的main
腳本的進程是主進程。ipcMain
模塊接收渲染進程和向渲染進程發送消息。BrowserWindow
類開啓一個渲染進程並將這個實例運行在該進程中,當一個BrowserWindow
實例被銷燬後,相應的渲染進程也會被終止。ipcRenderer
模塊接收主進程和向發送主進程發送消息。// app能夠理解爲主進程
// BrowserWindow用於建立渲染進程
const {app, BrowserWindow} = require('electron')
app.on('ready', function createWindow () {
// 能夠建立多個渲染進程
let win1 = new BrowserWindow({
width: 1024,
height: 768
})
let win2 = new BrowserWindow({
width: 1024,
height: 768
})
// 渲染進程中的web頁面能夠加載本地文件
win1.loadFile('index.html')
// 也能夠加載遠程頁面
win2.loadURL('http://www.baidu.com')
// 記得在頁面被關閉後清除該變量,防止內存泄漏
win1.on('closed', function () {
win1 = null
})
win2.on('closed', () => {
win2 = null
})
})
// 頁面所有關閉後關閉主進程,這裏在不一樣平臺可能有不一樣的處理方式,這裏不深刻研究
app.on('window-all-closed', () => {
app.quit()
})
複製代碼
// index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>electron應用</title>
</head>
<body>
<script> const fs = require('fs') fs.readFile('./demo.txt', function (err, data) { document.write(data) }) </script>
</body>
</html>
複製代碼
npm start
運行應用npm start
運行應用,那如何將應用分發給他人呢,下面簡單介紹Windows平臺的方式複製node_modules/electron/dist
目錄下的文件到任意文件夾yourapp
javascript
複製你的項目文件到yourapp/resources/app
下css
刪除yourapp/resources/default_app.asar
文件html
運行yourapp/electron.exe
前端
<script> const fs = require('fs') const path = require('path') fs.readFile(path.resolve(__dirname, 'demo.txt'), function (err, data) { document.write(data) }) </script>
複製代碼
【完】java
做者簡介:葉茂,蘆葦科技web前端開發工程師,表明做品:口紅挑戰網紅小遊戲、服務端渲染官網。擅長網站建設、公衆號開發、微信小程序開發、小遊戲、公衆號開發,專一於前端領域框架、交互設計、圖像繪製、數據分析等研究。 一塊兒並肩做戰: yemao@talkmoney.cn 訪問 www.talkmoney.cn 瞭解更多node