electron入门之试调工具remote(三)
electron入门到入土,从渲染线程中创建新窗口。2022-03-21入门版本17.1.2
electron重要概念,只有一个主线程,其他都是渲染进程或者叫子线程,他们不能直接相互操作,可以通过ipcMain、ipcRenderer进行相互事件操作,低版本前用remote很好使,百度上的基本是老版本的教程。因为electron14+后remote被重写:https://www.electronjs.org/zh/docs/latest/breaking-changes#计划重写的-api-140
所以用remote需要安装,但是remote还是很好的数据交互组件。
开发前端经常需要使用开发者试调工具,我们可以在主线程中通过mainWindow.webContents.openDevTools()打开:
// 加载 index.html
mainWindow.loadFile('views/index.html')
mainWindow.webContents.openDevTools() // 打开开发工具
可以通过事件通信实现:
主线程中:
const {app, BrowserWindow, ipcMain} = require('electron')
// 打开开发工具
ipcMain.on("openDevTools", (event, data) => {
mainWindow.webContents.openDevTools()
})
渲染/子线程中
<script>
const {ipcRenderer} = require('electron');
function handleKeyPress(event) {
console.log(`You pressed ${event.key}`)
if (event.key === 'F12') {
// 发送 hello-console 事件
ipcRenderer.send('openDevTools','')
}else if(event.key==='F5'){
window.location.reload()
}
}
window.addEventListener('keyup', handleKeyPress, true)
</script>
按F12打开

还能用remote直接打开获取
// 安装
npm install --save @electron/remote
初始化:主线程中
// in the main process:
require('@electron/remote/main').initialize()
// 渲染线程开启remote electron 14+
require("@electron/remote/main").enable(webContents)
// 例如我的
require("@electron/remote/main").enable(mainWindow.webContents)
渲染线程中使用:
// 获取当前窗口对象
const currentWindow = require('@electron/remote').getCurrentWindow();
function handleKeyPress(event) {
console.log(`You pressed ${event.key}`)
if (event.key === 'F12') {
// 发送 hello-console 事件
ipcRenderer.send('openDevTools','')
}else if(event.key==='F5'){
window.location.reload()
}else if (event.key==='F1'){
currentWindow.webContents.openDevTools()
}
}
window.addEventListener('keyup', handleKeyPress, true)
按F1 打开

关于electron的开发工具,按个人习惯,例如我是后端开发,习惯用idea,那么我就用idea开发electron,开发vue cli也是用idea,说实话,我用不惯vs code,个人推荐用idea开发。
electron入门之试调工具remote(三)的更多相关文章
- Fiddler4入门--手机抓包工具安装和使用说明
Fiddler4入门--手机抓包工具安装和使用说明.电脑最好是笔记本连同一个wifi,这样能和手机保持统一局域网内. 很多区块链dapp项目方风控做的很差,利用fiddler抓包分析找一些漏洞,然后利 ...
- Git版本控制工具(三)----远程仓库GitHub的使用
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- mysql监控、性能调优及三范式理解
原文:mysql监控.性能调优及三范式理解 1监控 工具:sp on mysql sp系列可监控各种数据库 2调优 2.1 DB层操作与调优 2.1.1.开启慢查询 在My.cnf文件中添加如 ...
- JVM调优(三)——基于Btrace的监控调试
JVM调优(三)--基于Btrace的监控调试 简介 Btrace可以动态地向目标应用程序的字节码注入追踪代码 用到的技术: JavaComplierApi.JVMTI.Agent.Instrumen ...
- 微软出品的UI自动化测试工具Playwright(三)
微软出品的UI自动化测试工具Playwright(三) 网址 说明 https://playwright.dev/ 官网首页 https://playwright.dev/python/docs/in ...
- electron 入门小白贴
electron 入门小白贴 electron demo 跑起来! 毕设准备是做个 跨平台的做题的客户端,打算用 electron 来弄. 然而今天折腾了半天才终于吧demo给跑起来了.经历了许多的问 ...
- Json.Net6.0入门学习试水篇
原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中 ...
- OpenCV4Android释疑: 透析Android以JNI调OpenCV的三种方式(让OpenCVManager永不困扰)
OpenCV4Android释疑: 透析Android以JNI调OpenCV的三种方式(让OpenCVManager永不困扰) 前文曾详细探讨了关于OpenCV的使用,原本以为天下已太平.但不断有人反 ...
- Spring Boot 入门之持久层篇(三)
原文地址:Spring Boot 入门之持久层篇(三) 博客地址:http://www.extlight.com 一.前言 上一篇<Spring Boot 入门之 Web 篇(二)>介绍了 ...
- Mac开发必备工具(三)—— Fish shell
Fish shell 简介 fish 可以根据输入自动匹配历史命令.它的一大特点是开箱即用,没有zsh那些繁琐的配置.官网:http://www.fishshell.com/. 安装与配置 在终端里使 ...
随机推荐
- How to install Django¶
This document will get you up and running with Django. Install Python Being a Python Web framework, ...
- Android 通过solid来定义不同边框的颜色,可以只定义一个边框的颜色
以下是设置按钮的右边框和底边框颜色为红色,边框大小为3dp,如下图: 在drawable新建一个 btnstyle.xml的文件,内容如下: <?xml version="1.0&qu ...
- [GXYCTF 2019]BabyUpload
看到题目是一个文件上传 就先随便传的东西试试,看有什么过滤之类的 上传一个一句话木马,提示后缀名不能为ph 随便上传了带有一句话木马的图片,发现上传成功,但这个图片不能直接利用,要先上传一个.htac ...
- nvm的安装及使用(入门级)
1 从官网下载压缩包到本地 下载地址: https://github.com/coreybutler/nvm-windows/releases 2 配置 2.1 settings.txt配置 (1)下 ...
- linux 查找命令(whatis,free,df,top)
whatis whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上,等同于 man -f: # whatis grep grep (1) - print lines matchin ...
- dfs 序 O(nlogn)-O(1) 求 LCA
学点分树,发现不会询问复杂度 \(O(1)\) 的 LCA.于是被迫递归式学习. 我们设 \(dfn_i\) 表示点 \(i\) 在 dfs 过程中第几个被访问到,把点按访问到的顺序排序得到的序列叫 ...
- k8s Rabbitmq安装部署
安装方式 kubectl apply -f rabbitmq.yaml -n yunda-dev-cache rabbitmq.yaml ##创建PV # 注意更换存储方式 --- apiVersio ...
- 两个对于电影片段的情绪研究(中国&国外)
1.国内的研究(A new standardized emotional film database for Asian culture) 测试片使用了8种情绪类型,每部片子有4个维度的分数,分数是从 ...
- JavaScript高级程序设计笔记09 代理与反射
代理与反射 ES6新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力. 具体就是,可以给目标对象定义一个关联的代理对象,而这个代理对象可以作为抽象的目标对象来使用. 在对目标对象的各种操 ...
- BI 数据可视化平台建设(2)—筛选器组件升级实践
作者:vivo 互联网大数据团队-Wang Lei 本文是vivo互联网大数据团队<BI数据可视化平台建设>系列文章第2篇 -筛选器组件. 本文主要介绍了BI数据可视化平台建设中比较核心的 ...