electron的通信】的更多相关文章

1.获取当前设备的屏幕可用区域的分辨率winW=electron.screen.getPrimaryDisplay().workAreaSize.widthwinH=electron.screen.getPrimaryDisplay().workAreaSize.height 2.主进程和渲染进程通信或渲染进程之间通信,除使用ipc外,还可使用remote和global结合,例如:(1)获取第一步:在主进程中定义electron的全局变量global.sharedObject = { newTe…
1.报错信息没有安装python环境 1 gyp ERR! find Python 2 gyp ERR! find Python Python is not set from command line or npm configuration 3 gyp ERR! find Python Python is not set from environment variable PYTHON 4 gyp ERR! find Python checking if "python" can b…
窗口间通信的问题 electron窗口通信比nwjs要麻烦的多 electron分主进程和渲染进程,渲染进程又分主窗口的渲染进程和子窗口的渲染进程 主窗口的渲染进程给子窗口的渲染进程发消息 subWin.webContents.on('dom-ready', () => {     subWin.webContents.send('message', {         title: self.$root.a[self.$root.aIndex].title,         content: …
本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.   在开始之前,我想您一定会有这样的困惑:标题里的Electron 是什么?Electron能做什么?许多伟大的公司使用Electron框架的原因又是什么? 带着这些问题和疑惑,通过本文的介绍,可助您全面地认识Electron这门新兴的技术,迅速找到其入门途径,并理解Electron为何被称为当下开发桌面App的最佳选择.   初探Electron一.Electro…
那一天我二十一岁,在我一生的黄金时代,我有好多奢望.我想爱,想吃,还想在一瞬间变成天上半明半暗的云,后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消逝,最后变得像挨了锤的牛一样.可是我过二十一岁生日时没有预见到这一点.我觉得自己会永远生猛下去,什么也锤不了我. 前言 现在是凌晨一点,可能是在夜里的时候人会变得比较感性,所以突然想到了王小波在黄金时代中写下的这段话,没有理由的在这篇技术文章中将它作为引言.希望大家在自己的黄金时代永远的生猛下去,什么也锤不了你. 书归正传,咱们…
一.main process 和 web page 通信 electron框架主进程(Main Process)与嵌入的网页(web page,也就是renderer process)之间的通信 Main.js里添加代码 //通信模块,mian process与renderer process(web page) const {ipcMain} = require('electron') //监听web page里发出的message ipcMain.on('asynchronous-messa…
最近转入零售行业开发了一系列产品,包含便利店收银软件.会员系统.供应链系统.为了追赶潮流,收银软件使用了electron平台开发,界面效果.开发效率确实不错:但是涉及到串口通讯时遇到了麻烦,electron不能直接使用node.js的串口模块.网上有一些文章推荐编译electron源码来实现串口模块的集成,向这条路走的过程中发现困难重重,尝试多次都没有成功,于是放弃. 经过一系列的google并测试后,终于通过调用第三方应用程序的方式实现:electron启动C#开发的程序.C#程序直接与串口通…
如何实现electron多页面间通信 1,业务需求: 总共有两个页面,页面A显示数据,页面B处理数据,主线程Main 2,实现的技术方案: 在主线程中打开页面A和B,B页面不进行显示,主要负责处理从A页面发送到主线程Main上的数据,然后B将数据处理完成之后,再次将数据送到主线程Main上,主线程Main将数据再将数据转发到页面A上,页面A进行数据展示. 注意:在electron中页面A和页面B无法进行通信.必须依托于上述解决方案. 3,多页面消息传递流转图 4,伪代码实现 主线程 const…
上一篇讲了使用electron进行打包的配置相关文件,这篇主要讲electron中很重要的通信方式. 首先解释一个概念: electron打包的应用包含两个部分 electron的环境(node),也就是主进程. web渲染环境,副进程. 这两个环境之间是相互隔离的,无法直接进行数据通信,所以有了这篇文章. 三个角色: ipcRender ipcMain webContents ipcRenderer用于渲染进程 ipcRenderer.on(channel, listener) --> cha…
效果展示 项目背景: 由于浏览器的限制,web批量下载体验不好以及无法下载文件夹.采用Electron技术,通过js开发PC应用程序,着力解决批量下载.断点续传.文件夹下载等问题.配合网页版网盘使用,单个小文件使用浏览器内置下载,单个大文件.多文件.文件夹调用PC应用程序,提升下载体验. 技术栈 Electron项目的目的,是为了要避免使用 vue 手动建立起 electron 应用程序.electron-vue 充分利用 vue-cli 作为脚手架工具,加上拥有 vue-loader 的 we…
这几天学习了一下Elctron,对于这个应用有了一点简单的认识,将这个过程记录一下. 首先,electron会加载main.js,在这里将整个程序启动,相当于其他程序的main函数了. 我是基于electron-api-demos来简单改写的,所以将服务器端放到了main-process文件夹,在这个文件夹中的js文件,会在启动的时候被require进来,驻在后台,可以通过设置断点调试了.PS:使用的是VS Code 然后就是使用IPC通信来完成这个服务器端的工作,ipcMain在服务器端的接收…
目录结构: index.js是主进程js. const electron = require('electron') const app = electron.app const BrowserWindow = electron.BrowserWindow //主进程 const ipc = require('electron').ipcMain; app.on('ready',function(){ var mainWindow = new BrowserWindow({ width: 800…
目前工作遇到个问题: .net做的exe和electron做的exe,之间进行数据通信 目前找到两个相对方便的方法: 1.命名管道 ①.net命名管道资料: 进程间通信 - 命名管道实现 ②electron 之 nodejs 命名管道资料: 使用nodejs,用法跟tcp一样,不过就是监听的时候,tcp是端口号,而命名管道是"\\.\pipe\" + PIPE_NAME;这种形式: 客户端连接也是用管道名称去连接,而不是tcp的那种端口号: 在windows平台下,命名管道和tcp方法…
ipcMain https://electronjs.org/docs/api/ipc-main 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进程发送消息 ipcRenderer https://electronjs.org/docs/api/ipc-renderer 使用它提供的一些方法从渲染进程 (web 页面) 发送同步或异步的消息到主进程. 也可以接收主进程回复的消息 使用自定义的 最小化,最大化,关闭按钮 渲染进程 html 片段…
以下代码均来自于我开发的开源软件:想学吗 窗口A的渲染进程发消息给主进程 const { clipboard, ipcRenderer, remote } = require('electron'); ipcRenderer.send('imgUploadMain', { id: dom.id, siteId: this.siteId, url: dom.src }); 主进程收到消息后,再发消息给窗口B的渲染进程 import { app, BrowserWindow, ipcMain, Me…
一介绍 electron分为主进程和渲染进程,主进程负责和原生交互,控制窗口等. 渲染进程就是普通网页.主进程和渲染进程可以通过ipcMain(主进程使用)及ipcRenderer(渲染进程用)通信 quick-start中main.js为主进程入口文件 index.html为渲染进程入口文件 另外很重要的一点使用electron没有跨域限制!!! 二 打包 1.快速运行quick-start(开发时启动) git clone https://github.com/electron/electr…
Electron简介: Electron提供了丰富的本地(操作系统)的API,使你能够使用纯JavaScript来创建桌面应用程序,并且跨平台(win,mac,linux等各种PC端平台).与其它各种的Node.js运行时不同的是Electron专注于桌面应用程序而不是Web服务器. 有时候面对需求,开发出的web page既要能Online又要Offline(Offline是针对一些特殊网络环境或者page资源很大的情况下,企业或者其他机构要求的) web page offline的时候,甚至…
使用 electron 做个播放器 本文同步更新在:https://github.com/whxaxes/blog/issues/8 前言 虽然 electron 已经出来好长时间了,但是最近才玩了一下,写篇博文记录一下,以便日后回顾. electron 的入门可以说是相当简单,官方提供了一个 quick start,很流畅的就可以跑起来一个应用.因此,如何入门就不赘述了,直接说一下如何做个播放器. 为啥要做个播放器呢,因为我在很久很久以前写过一个网页版的音频可视化播放器,但是因为是在页端,所以…
一.为什么需要使用DLL 需要使用系统 API 操作或扩展应用程序: 需要调用第三方的接口API,特别是与硬件设备进行通信,而这些接口 API 基本上都是通过 C++ 动态链接库(DLL)实现的: 需要调用C++实现的一些复杂算法等. 二.node-ffi 是什么 node-ffi:Node.js Foreign Function Interface node-ffi is a Node.js addon for loading and calling dynamic libraries usi…
前言 Electron 是一个搭建跨平台桌面应用的框架,仅仅使用 JavaScript.HTML 以及 CSS,即可快速而容易地搭建一个原生应用.这对于想要涉及其他领域的开发者来说是一个非常大的福利. 原文作者:林鑫,作者博客:http://blog.gdfengshuo.com/ 项目介绍 仓库地址:lin-xin/calculator 我这里通过 Electron 实现了仿 iPhone 的计算器,通过菜单可以切换横屏和竖屏,横屏有更多的运算.而对于 JavaScript 进行浮点数计算来说…
原文:Creating Your First Desktop App With HTML, JS and Electron 作者:Danny Markov 近年来 web 应用变得越来越强大,但是桌面应用仍然有充分利用硬件的优势. 今天,我们可以通过我们熟悉的 HTML.JS 和 Node.js 来创建桌面应用,打包成一个可执行文件,并且发布在 Windows, OS X 和 Linux 上. 有两个受欢迎的开源项目,能够帮助我们实现这个目的.一个是几个月前我们讨论到的 NW.js,另一个是今天…
Electron是什么? 官网是这么描述的:Build cross platform desktop apps with JavaScript, HTML, and CSS 翻译一下:使用JavaScript,HTML以及CSS搭建跨平台桌面应用 诞生环境 一位博主这样开玩笑说: 可能主要是因为,猿类里的亚种--前端开发--又有了新的出路了吧,还没找工作的前端开发,又有了新的岗位可以去选择,已经在岗的前端也有了新一年的 KPI/OKR,刚起步的创业公司可以只拉一个前端就能开发跨平台的多个桌面客户…
某个产品的Mac客户端计划基于electron实现,因为现有SDK有C API,原理上用NodeJS Addon来封装成JS API就可使用了.但涉及到与Addon多线程交互,翻找资料没能找到到底该怎么做,只好翻看NodeJS实现找到实现思路. 实现思路上,NodeJS V8 引擎是libuv单线程的,客户端前台页面逻辑跑在libuv事件循环中,后台SDK跑在独立的线程上.业务需要前后台线程之间互相通信,前台访问后台直接API调用,然后异步回调.后台通知则需要唤醒libuv线程来完成. libu…
Electron介绍 简单来说,Electron就是可以让你用Javascript.HTML.CSS来编写运行于Windows.macOS.Linux系统之上的桌面应用的库.本文的目的是通过使用Electron开发一个完整但简单的小应用:记事本,来体验一下这个神器的开发过程.本文犹如Hello World一样的存在,是个入门级笔记,但如果你之前从未接触过Electron,而又对它有兴趣,某想信这会是一篇值得一看的入门教程. PS:这篇文章是基于Windows的开发过程,未对macOS.Linux…
paper:A Complete Electron Microscopy Volume of the Brain of Adult Drosophila melanogaster 果蝇是一个非常完美的研究大脑的模式动物,10万级的神经元却已经形成了较为复杂的智能行为,这远比直接研究1000亿级的人类大脑简单得多,一旦在模式动物中发现了关键的智能的神经学原理,如果在高级哺乳动物中也得以验证,那我们就能真正揭开大脑黑箱的秘密. 本文框架如下: 0. 一些背景知识 1. 本文产生了哪些核心数据? 2.…
一.为什么需要使用DLL 需要使用系统 API 操作或扩展应用程序: 需要调用第三方的接口API,特别是与硬件设备进行通信,而这些接口 API 基本上都是通过 C++ 动态链接库(DLL)实现的: 需要调用C++实现的一些复杂算法等. 二.node-ffi 是什么 node-ffi:Node.js Foreign Function Interface node-ffi is a Node.js addon for loading and calling dynamic libraries usi…
文档知识点 https://electronjs.org/docs/tutorial/about (1)Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的. 即electron内置了浏览器和node环境. Electron包括2个进程:main-process ,render-process. main-process:控制应用的生命周期 render-process:浏览器渲染. 这2个进行之…
1.Electron支持的平台: OS XWindowsLinux 2.一个标准的electron app包含的结构: Windows 或是 Linux中:electron/resources/app|_package.json|_main.js|_index.html 3.electron程序打包: 一般使用asar来进行打包,electron中一般包含两种API:Node.js和Chromium提供的Web APINode API如fs.readFile 4.使用Native Node模块…
初学electron 接触了两周的electron,感觉还不错,以后pc端基本上可以用electron加壳写pc端应用了,可以用nodejs的模块,也可以用es6.7,还可以直接操作系统文件.基本上可以完成大多数pc应用了. 就是安装慢成狗了....用镜也卡! 快速开始 Electron通过为运行时提供丰富的本机(操作系统)API,可以使用纯JavaScript创建桌面应用程序.您可以将其看作是Node.js运行时的一种变体,它专注于桌面应用程序而不是Web服务器. 这并不意味着Electron…
使用 Electron 构建桌面应用(拖动控制篇) 当窗口被定义了大小,我们也就是在自定义这个窗口,使得它不可拉伸没有框架,让它看起来就像一个真正的声效器浮在桌面上. 现在问题来了 – 要如何移动或者关闭一个没有标题栏的窗口. 很快我就会说到自定义窗口(和应用)的关闭动作,还会谈到如何在主进程和渲染器进程中通信.不过现在让我们先把目光聚焦到“拖拽效果”上.你可以在 app/css 目录下找到 index.css 文件: html, body { ... -webkit-app-region: d…