博客 分类专栏 专题 成员
electron 初体验
2022-05-21 03:23:14
分类专栏: electron

一些初始化问题

渲染进程使用node.js 模块

const mainWindow = new BrowserWindow({
        width: 600,
        height: 400,
        icon: 'icon.ico',
        webPreferences: {
            nodeIntegration: true, //允许渲染进程使用nodejs
            contextIsolation: false //允许渲染进程使用nodejs
        }
    });

中文乱码解决

在package.json中的启动脚本中添加 chcp 65001

"scripts": {
    "start": "chcp 65001 && electron .",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

使用remote

remote可以用于主线程,渲染线程通讯,渲染线程创建窗口等操作,使的渲染线程可以调用主线程方法
高版本的remote被独立成第三方包,使用需要单独引入

npm install --save @electron/remote

主线程中配置


const remote = require('@electron/remote/main');
remote.initialize()

const mainWindow = new BrowserWindow({
        width: 600,
        height: 400,
        icon: 'icon.ico',
        webPreferences: {
            nodeIntegration: true, //允许渲染进程使用nodejs
            contextIsolation: false //允许渲染进程使用nodejs
        }
    });
   remote.enable(mainWindow.webContents);

窗口参数

获取屏幕大小

const {screen} = require("electron");

let screenWidth = screen.getPrimaryDisplay().workAreaSize.width;
let screenHeight = screen.getPrimaryDisplay().workAreaSize.height;

设置窗口位置


    const mainWindow = new BrowserWindow({
        width: 600,
        height: 400,
        icon: 'icon.ico',
        webPreferences: {
            nodeIntegration: true, //允许渲染进程使用nodejs
            contextIsolation: false //允许渲染进程使用nodejs
        }
    });
   mainWindow.setPostion(x,y)