Electron 笔记
1. 窗口相关基础引用
const {app, BrowserWindow} = require('electron');
app.on('ready', function () {
let bw1 = new BrowserWindow({
width: 800,
height: 600,
alwaysOnTop: true,
title: '淘淘课堂',
});
bw1.loadFile('./layout/index.html');
});
2. 与菜单有关的基础引用
const {app, BrowserWindow, Menu, MenuItem} = require('electron');
app.on('ready', () => {
let bw1 = new BrowserWindow();
let m1 = new Menu();
let mi1 = new MenuItem({
type: 'normal',
label: '文件'
});
m1.append(mi1);
let mi2 = new MenuItem({
type: 'submenu',
label: '查看',
submenu: [{
type: 'normal',
label: '文件'
},
{
type: 'separator'
},
{
type: 'normal',
label: '文件夹'
},
{
type: 'checkbox',
label: '选项一',
checked: true
},
{
type: 'separator'
},
{
type: 'radio',
label: 'AAAA'
},
{
type: 'radio',
label: 'BBBB'
},
{
type: 'separator'
},
{
type: 'normal',
label: '退出',
click() {
app.quit();
}
}
]
});
m1.append(mi2);
Menu.setApplicationMenu(m1);
});
3. 进程之间的数据通信
const {app, BrowserWindow, ipcMain} = require('electron');
let datas ={
username: 'Clairoll',
gender: '男'
}
app.on('ready', () => {
let bw = new BrowserWindow();
bw.webContents.openDevTools();
bw.loadFile('./layout/index.html');
ipcMain.on('getData', function(e,key){
e.sender.send('sendData', datas[key]);
})
setTimeout(() => {
bw.webContents.send('hello', 'hello........', 10, 20, 30);
}, 2000);
let bw1 = new BrowserWindow();
bw1.webContents.openDevTools();
bw1.loadFile('./layout/index1.html');
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>App</h1>
<button>按钮</button>
<button>按钮2</button>
<script>
const {remote, ipcRenderer} = require('electron');
const btns = document.querySelectorAll('button');
btns[0].onclick = function(){
ipcRenderer.send('getData', 'username');
}
ipcRenderer.on('sendData', function(e, data){
console.log(data);
})
ipcRenderer.on('hello', function(e, ...data){
console.log(data);
})
btns[1].onclick = function() {
localStorage.setItem('user', 'Clairoll');
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>App2</h1>
<button>按钮</button>
<script>
const buttons = document.querySelectorAll('button');
buttons[0].onclick = function () {
console.log(localStorage.getItem('user'));
}
</script>
</body>
</html>