electron-vue跨平台桌面应用开发实战教程(二)——主进程常用配置

    本文链接:

    electron 主要分为主进程(background.js)、渲染进程(也就是vue开发的页面)和GPU进程等,但是我们主要使用的就是主进程和渲染进程,其他进程暂时不做深入研究。

    主进程:

    • 一个应用中有且只有一个主进程
    • 创建窗口等所有系统事件都要在主进程中进行
    • 每创建一个web页面都会创建一个渲染进程
    • 每个web页面运行在它自己的渲染进程中
    • 每个渲染进程是独立的, 它只关心它所运行的页面

    主进程的主要主要作用:

    1. 创建渲染进程
    2. 管理应用程序的生命周期
    3. 与系统底层交互

    在此处主要讲解可以在主进程中设置进行哪些最常用的配置配置。

    1.设置渲染进程的大小、外观

    此处只设置了几个基本属性,更多属性请参考:https://www.w3cschool.cn/electronmanual/electronmanual-browser-window.html

    2.设置菜单

    1. // darwin表示macOS,针对macOS的设置
    2. if (process.platform === 'darwin') {
    3. const template = [
    4. {
    5. label: 'App Demo',
    6. submenu: [
    7. {
    8. role: 'about'
    9. },
    10. role: 'quit'
    11. }]
    12. }]
    13. Menu.setApplicationMenu(menu)
    14. } else {
    15. // windows及linux系统
    16. Menu.setApplicationMenu(null)
    17. }

    在这里要注意,MacOS和windows及Linux的处理是不一样的

    3.当应用启动后(初始化完成)要做的一些事情

    在此处通常做一些应用初始化的工作,例如:提前加载一些数据,等到渲染进程渲染完页面之后直接调用,加快应用加载速度等。

    4. 当应用所有窗口关闭要做的事情

    1. app.on('window-all-closed', () => {
    2. // On macOS it is common for applications and their menu bar
    3. // to stay active until the user quits explicitly with Cmd + Q
    4. if (process.platform !== 'darwin') {
    5. app.quit()
    6. }
    7. })

    当应用所有窗口关闭调用此方法,在此方法中可以增加释放资源,或者删除一些临时文件

    5.与渲染进程进行通讯

    官方有多种通讯方式,我们这里介绍最常用的一种ipcRenderer(渲染进程中使用的对象)和ipcMain(主进程中使用的对象)。比如渲染进程让主进程关闭当前窗口
    渲染进程

    主进程

    1. ipcMain.on('close', e => win.close());

    更多内容请关注公众号