如这里是Header组件
// @flowimport React, { Component } from 'react';import style from './Header.css';const { ipcRenderer } = require('electron');export default class Home extends Component {// 最小化、最大化、关闭窗口buttonClick = type => {ipcRenderer.send(type);};render() {return (<div className={style['header-main']}><div className={style['header-title']}>我是前端</div><div className={style['header-right']}><ahref="javacript:;"rel="最小化"className={style['header-min']}onClick={this.buttonClick.bind(this,'min')}>最小化</a><ahref="javacript:;"rel="最大化"className={style['header-max']}onClick={e => this.buttonClick('max', e)}>最大化</a><ahref="javacript:;"rel="关闭"className={style['header-close']}onClick={this.buttonClick.bind(this,'close')}>关闭</a></div></div>);}}
main.js或index.js主进进程文件是有创建mainWindow = new BrowserWindow()的
加入以下代码
1.这里注意下,
frame: false状态下,仅一个isMaximized()并不能准确判断窗口是否已经最大化,所以加上判断是否全屏isFullScreen()
2.如果mainWindow的transparent属性设置了true,窗口是不允许变化的
import { ipcMain } from 'electron';/*** 监听最大化、最小化、关闭操作*/ipcMain.on('min', e => mainWindow.minimize());ipcMain.on('max', e => {if (mainWindow.isMaximized() || mainWindow.isFullScreen()) {mainWindow.unmaximize();} else {mainWindow.maximize();}});ipcMain.on('close', e => mainWindow.close());
https://segmentfault.com/a/1190000011765025 (vue的方式)
https://electronjs.org/docs/api/browser-window
https://electronjs.org/docs/api/ipc-renderer
electron通过reactjs自定义最大化、最小化、关闭功能
无边框窗口是不带外壳(包括窗口边框、工具栏等),只含有网页内容的窗口。 这些是 BrowserWindow 类上的选项。透明窗口是没有阴影部分。利用css设置自定义区域可拖动。
nsis中文手册及安装
对electron目录调整后,打包白屏?而使用electron-packager打包没问题,什么原因呢?
electron .命令是什么?能换成别的目录吗?当然可以~
electron-builder相对electron-packager有更丰富的的功能,支持更多的平台,同时也支持了自动更新,electron-builder打出的包更为轻量,并且可以打包出不暴露源码的setup安装程序
window下使用 electron-packager将electron打包成exe可执行文件
electron快速开始入门