electronJS 开发linux App
发布日期:2021-05-15 02:52:36 浏览次数:8 分类:精选文章

本文共 3946 字,大约阅读时间需要 13 分钟。

Electron.js ������������

Electron.js ���������������������

Electron.js ��������������� Node.js ��������������������������������������������������������������������������������������������� JavaScript���HTML ��� CSS ������������������������������������������������������������������������������������������������������������������������������������������������������������������Hello, World!��������������������������������������������� Megabytes������������ Electron.js ������������������������������������������������������������

������������������������������

Electron.js ��������������� Windows���macOS���Linux ��� Android ��������������������������������������� Electron ���������������������������������������������������������������������������������������������������������������������������������������

# ������������
$ git clone https://github.com/electron/electron-quick-start
#������������
$ cd electron-quick-start
#������������
$ npm install
# ������������
$ npm start

���������������������������������������

Electron.js ���������������������������������������������Main Process���������������������Renderer Process������������������������������������������������������������������������������������������������������������������������������������ Node.js ������������������������������������������������������ V8 ���������������������������

������������������

������������������������������������ IPC���Inter-Process Communication���������������������������������������������������������������

// ������������main.js���
const { ipcMain } = require('electron');
function createWindow () {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
preload: path.join(__dirname, 'preload.js')
}
});
mainWindow.removeMenu();
mainWindow.loadFile('index.html');
mainWindow.webContents.openDevTools();
ipcMain.on('asynchronous-message', (event, arg) => {
console.log(arg);
event.sender.send('asynchronous-reply', 'async pong');
});
ipcMain.on('synchronous-message', (event, arg) => {
console.log(arg);
event.returnValue = 'sync pong';
});
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
if (mainWindow === null) {
createWindow();
}
});
//���������������render.js���
const { ipcRenderer } = require('electron');
console.log(ipcRenderer.sendSync('synchronous-message', 'sync ping'));
ipcRenderer.on('asynchronous-reply', (event, arg) => {
console.log(arg);
});
ipcRenderer.send('asynchronous-message', 'async ping');

���������������������������

���������������������������������������������������������������������������������������������������������������������������������

mainWindow.webContents.on('did-finish-load', () => {
mainWindow.webContents.send('asynchronous-message', 'Hello');
});

���������

setInterval(() => {
mainWindow.webContents.send('asynchronous-message', 'Hello');
}, 1000);

������ WebSocket

������������������������������������Electron.js ��������� WebSocket���������������������������

main.js

const { ipcMain, WebSocket } = require('electron');
// ������������...
let electron.ws = new WebSocket('ws://localhost:8000');
electron.ws.onmessage = (event) => {
console.log('������������������������������', event.data);
};

render.js

const { ipcRenderer, WebSocket } = require('electron');
const ws = new WebSocket('ws://localhost:8000');
ws.onmessage = (event) => {
console.log('���������������������������', event.data);
};
// ������������
setInterval(() => {
ws.send('ping');
}, 2000);

������

��������������������������������������������� Electron.js ��������������������������������������������� ��������������������� ������������ ��������������������������������������������������������� Electron.js ���������������

上一篇:modular-2 Edge软件白皮书
下一篇:Python函数传递实参、返回值、传递列表等用法(1) ——8

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月03日 22时40分38秒