首页 > 系统相关 >electron渲染进程与主进程之间通信

electron渲染进程与主进程之间通信

时间:2023-08-14 16:02:48浏览次数:36  
标签:const 渲染 win app window electron 进程 true

首先main.js中通过preload进行预加载脚本 __dirname字符串指向当前正在执行的脚本的路径

const { app, BrowserWindow } = require('electron');//引入electron
const path = require('path');
let win;
let windowConfig = {
  width: 300,
  height: 600,
  minWidth: 300,
  webPreferences: {
    nodeIntegration: true,// 是否集成 Nodejs
    preload: path.join(__dirname,'preload.js')
  },
  transparent: true,
  frame: false,
  // alwaysOnTop: true,
  resizable: true,//可否缩放
  movable: true//可否移动
};//窗口配置程序运行窗口的大小
function createWindow() {
  win = new BrowserWindow(windowConfig);//创建一个窗口
  win.loadURL(`file://${__dirname}/web/dist/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html
  win.webContents.openDevTools();  //开启调试工具
  win.on('close', () => {
    //回收BrowserWindow对象
    win = null;
  });
  win.show()

}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
  app.quit();
});

app.on('activate', () => {
  if (win == null) {
    createWindow();
  }
});

const ipcMain = require('electron').ipcMain;
ipcMain.on('closeApp', function () {
  app.quit();
});
ipcMain.on('window-min', function () {
  win.minimize();
});

preload.js

const { contextBridge, ipcRenderer } = require('electron')

contextBridge.exposeInMainWorld('electronAPI', {
    minApp: () => ipcRenderer.send('window-min'),
    closeApp:() => ipcRenderer.send('closeApp')
})

然后页面中通过window.electronAPI访问定义的方法即可

标签:const,渲染,win,app,window,electron,进程,true
From: https://www.cnblogs.com/whh666/p/17628877.html

相关文章

  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都可......
  • 技术分享 | kill掉mysqld_safe进程会影响mysqld进程?
    1、背景公司内部看到一则问题1、kill-9mysqld_safe进程2、systemd检测到mysqld_safe进程不存在后,重新拉起mysqld_safe进程3、mysqld_safe进程启动后,发现mysqld进程也被重启期望:启、停mysqld_safe进程,不会影响mysqld进程2、systemd服务启动2.1、复现问题......
  • 关于3x手机渲染问题
    iOS中利用通过setFrame来固定一个view的位置,例如下面代码:letdView=UIView()dView.frame=CGRect(x:100,y:100,width:100,height:70.8)dView.backgroundColor=.orangeview.addSubview(dView)通过Xcode的DebugViewHierarchy看到,dView的frame也确......
  • 什么是线程?为什么需要线程?线程和进程的区别?
    一.线程是什么?1.1.为什么需要线程    在执行多个任务时,多进程就已经可以实现并发编程的效果了,可是却有一个明显的缺点。 缺点:进程的创建都需要大量的资源(例如:PCB、硬盘资源等),因此开销就变大了;而且创建时需要大量的资源,也是需要更多的时间,因此导致速度变慢了。解决方法......
  • pinia入门案例-获取频道分类列表并渲染
    使用pinia的action异步获取频道分类列表数据并渲染到页面中。接口:GET请求,http://geek.itheima.net/v1_0/channelsstore/channel.jsimport{defineStore}from'pinia'import{ref,computed}from"vue"importaxiosfrom'axios'exportconstuseChannelStore=......
  • 进程地址空间(虚拟内存)
    进程地址空间,进程虚拟内存的管理。某个进程地址空间的全部区域可以以红黑树+链表的形式存放。内核线程没有mm_struct没有进程地址空间,没有相关的内存描述符,这也是内核线程的真实含义--它们没有用户上下文。当一个进程被调度时,该进程的mm域指向的地址空间被装载到内存,PCB中的acti......
  • 【CV】Nerf中体素渲染的离散公式推导
    在文章《NeRF:representingscenesasneuralradiancefieldsforviewsynthesis》中体素渲染的连续形式为在文章中给出了其离散形式为实际上这里的离散形式并不是将积分直接离散化,而是通过把路径上的density和color设定为分段常数,如下图所示于是先计算\(T\),\[\begin{a......
  • 进程管理 & (系统调用 内核同步)
    进程管理在现代操作系统中,进程提供两种虚拟机制,虚拟处理器和虚拟内存PCB描述一个正在执行的程序:打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程。在2.6以前的版本中,PCB直接放在内核栈的尾端,或者放一个pcb_info间接索引......
  • Linux 共享内存mmap,进程通信
    @TOC前言进程间通信是操作系统中重要的概念之一,使得不同的进程可以相互交换数据和进行协作。其中,共享内存是一种高效的进程间通信机制,而内存映射(mmap)是实现共享内存的一种常见方法。一、存储映射I/O存储映射I/O是一个磁盘文件与存储空间中的一个缓冲区相映射。于是,当从缓冲......