首页 > 其他分享 >Electron桌面应用

Electron桌面应用

时间:2024-05-10 16:01:50浏览次数:19  
标签:触发 窗口 模块 自定义 渲染 Electron 应用 进程 桌面

Electron介绍

Electron集成了chromium(支持最新特性的浏览器)与Node.js(javascript运行时,可实现文件读写)Native API是(提供统一原生界面操作的能力)
工作流程:启动APP 启动主进程,创建窗口,加载指定界面,开启渲染进程,渲染进程需要进行通信(如新增歌曲打开文件夹选择MP3文件)需通过主进程调用原生API进行操作
主进程可以看做是package.json中的main属性所对应的文件,一个应用只有一个主进程,只有主进程可以进行GUI操作,windows中展示的界面通过渲染进程实现,一个应用有多个渲染进程。
官网中含有起步项目
electron实质是在node环境下使用electron包

生命周期

ready: app 初始化完成
dom-ready: 一个窗口中的文本加载完成
did-finsh-load: 导航完成时触发窗口
window-all-closed: 所有窗口都被关闭时触发
before-quit: 在关闭窗口之前触发
will-quit: 在窗口关闭并且应用退出时触发
quit: 当所有窗口被关闭时触发
closed: 当窗口关闭时触发,此时应删除窗口引用
自启动配置
image
可以将窗体默认不去显示,然后监听窗体的ready-to-show事件让窗体进行显示
渲染进程是html通过<script>标签导入的js,在渲染进程引入const o = require('electron')去创建窗口(须在创建主进程窗口时添加如下红框中的配置),ctrl+shift+i调出调试的面板
image
通过remote模块与主进程进行通信
自定义窗口样式可将frame设置为false隐藏,然后在html文件中通过css来设置,js的编写下载DOMContentLoaded的监听中,通过原生方法获取元素
window.onbeforeunload 是一个JavaScript 事件处理器,在用户关闭当前页面(标签页)之前触发。
模态窗口,子窗口没有关闭之前父窗口不允许使用
image

自定义菜单

主进程模块下的Menu模块
角色和类型,配置项的role字段和type字段,设置快捷键
动态创建菜单
image
自定义右键菜单:1)用Menu创建一个自定义菜单内容2)在鼠标右击行为发生之后显示出来
image

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

ipcMain模块是在主进程通信需要用到的
image
渲染进程的消息是在浏览器中查看到的,同步APIsend加上Sync
image
主进程给渲染进程通信,需要现有一个menu,主进程获取当前窗口使用APIgetFocusedWindow()
image
渲染进程和渲染进程之间通信
一种方式是通过主进程,另一种方式是要通过localStorage
通过id获取到窗口image
dialog模块、shell模块和iframe模块
消息通知
image
全局快捷键globalShortcut模块
剪切板操作(clipboard字剪切,nativeImage图片剪切模块)

标签:触发,窗口,模块,自定义,渲染,Electron,应用,进程,桌面
From: https://www.cnblogs.com/zhixy/p/18183821

相关文章

  • 选择排序桌面检查
    码云代码:https://gitee.com/yibo886/codes/0ihau3t9pj6bkfqzxcmnl93博客园:一、实验题目:代码审查二、实验目的1、熟悉编码风格,利用开发环境所提供的平台工具对代码进行自动格式审查;2、根据代码规范制定代码走查表,并按所制定的审查规范互审代码。三、实验内容1、IDEA环境和P......
  • 高效办公小技巧:Windows桌面上如何添加日程安排表?
    很多上班族每天的工作任务非常多,但是工作时间又是固定的,所以需要找一些高效办公小技巧,来提高工作效率。而在电脑桌面上直接进行日程安排,随时查看,准时提醒,就是有效的方法之一。那么Windows桌面上如何添加日程安排表呢?其实敬业签这款电脑桌面待办软件中,就是支持随时记录日程安排清......
  • 5农机设备应用与维修专业人才培养方案
    农机设备应用与维修专业人才培养方案(试行)—、专业名称(专业代码)农机设备应用与维修(610113)二、入学要求初中毕业或具有同等学力三、基本学制3年四、培养目标本专业坚持立德树人,面向农业科技示范园、农机专业合作组织、小型农牧场等单位,培养从事农、林、牧、园艺与园林机械......
  • 3-主机监控、应用监控
    3.主机监控、应用监控二进制安装node_exportertar-zxvfnode_exporter-xxx.tar.gz-C/usr/localcd/usr/localchown-Rprometheus:prometheusnode_exporter-xxxln-svnode_exporter-xxxnode_exportercd/usr/local/node_exporter启动./node_exporter需要启动时添......
  • 关于Unet在扩散模型中的应用
    Unet的输入是\((x_noise,t)\),其中\(x_noise\)是在时间步\(t\)时已经添加了噪声的图片,Unet的输出是在时间步\(t\)添加的噪声。该噪声是公式\(q(x_t|x_{t-1})=\sqrt{\overline{\alpha_t}}x_0+\sqrt{1-\overline{\alpha_t}}\epsilon\)中的\(\epsilon\),这并非是真实加入的噪声,但......
  • vue-router单页面应用的多标签页使用问题
    正常的思维做多vue页面应用,我们的第一反应是配置多个入口点,多个vue应用,编译成多个HTML文件,由服务器来决定路由。这是正常的思维。但谁知道单页面应用也能做到类似的效果呢。单页面不过是服务器路由变成了客户端路由,但通过一些技巧,也能实现类似服务器多页面路由的效果。客户端路......
  • CloudXR:更高效便捷的XR应用交互方案
    CloudXR是一种新颖而先进的技术,旨在将虚拟现实和增强现实体验从本地设备转移到云端,主要功能也包括了远程渲染、流媒体传输、低延迟、高带宽和高质量的音视频传输。CloudXR(云化XR)可以将高保真度的虚拟现实或增强现实场景实时传输到终端设备上,无论是PC、手机、平板还是头戴式显示器......
  • python捕捉windows桌面
    使用mss模块截取屏幕图像#安装msspipinstallmssimportmss#获取屏幕尺寸withmss.mss()assct:monitor=sct.monitors[0]screen_width=monitor["width"]screen_height=monitor["height"]#设置捕获区域(这里设置为整个屏幕)monitor={"top":......
  • SpringBoot系列---【解决springboot应用突然无法启动了,日志中也没有错误日志】
    解决springboot应用突然无法启动了,日志中也没有错误日志1.问题描述五一过完了,来了之后突然发现一个微服务起不来了,本地启动没问题,但是上测试环境就是无法启动,但是查看日志,日志中也没有报错信息。怀疑是网络策略的问题,curl去试了一下数据库,as,redis,zk等等中间件,发现都通,最后又试了......
  • BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究
    BOSHIDAAC/DC电源模块在通信与网络设备中的应用研究随着通信与网络技术的不断发展,通信与网络设备的使用不断增加。电源作为通信与网络设备的重要组成部分之一,在其稳定工作中起到至关重要的作用。AC/DC电源模块作为一种常用的电源转换器,广泛应用于通信与网络设备中。 一,AC/DC......