资讯专栏INFORMATION COLUMN

Electron 的线程通信

ivydom / 422人阅读

主线程:Main

渲染线程:Renderer

Main --> Renderer

https://electronjs.org/docs/a...

Main

const {app, BrowserWindow} = require("electron")
let win = null

app.on("ready", () => {
  win = new BrowserWindow({width: 800, height: 600})
  win.loadURL(`file://${__dirname}/index.html`)
  win.webContents.on("did-finish-load", () => {
    win.webContents.send("ping", "whoooooooh!")
  })
})

Renderer



  

Renderer --> Main

https://electronjs.org/docs/a...

Renderer

// synchronous
const {ipcRenderer} = require("electron")
console.log(ipcRenderer.sendSync("synchronous-message", "ping")) // prints "pong"

// asynchronous
ipcRenderer.on("asynchronous-reply", (event, arg) => {
  console.log(arg) // prints "pong"
})
ipcRenderer.send("asynchronous-message", "ping")

Main

// synchronous
ipcMain.on("synchronous-message", (event, arg) => {
  console.log(arg)  // prints "ping"
  event.returnValue = "pong"
})

// asynchronous
const {ipcMain} = require("electron")
ipcMain.on("asynchronous-message", (event, arg) => {
  console.log(arg)  // prints "ping"
  event.sender.send("asynchronous-reply", "pong")
})
Global Object

Main

// Define
global.sharedObject = {
  someProperty: "default value"
}

// Get
var a = global.sharedObject.someProperty

// Set
global.sharedObject = "custom value"

Renderer

const electron = require("electron")

// Get
var a = electron.remote.getGlobal("sharedObject").someProperty

// Set
electron.remote.getGlobal("sharedObject").someProperty = "new value"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94705.html

相关文章

  • Electron】酷家乐客户端开发实践分享 — 进程通信

    摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    winterdawn 评论0 收藏0
  • Electron】酷家乐客户端开发实践分享 — 进程通信

    摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    aervon 评论0 收藏0
  • Electron】酷家乐客户端开发实践分享 — 进程通信

    摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    Wuv1Up 评论0 收藏0
  • electron-vue静默打印2019最新解决方案(含源码)

    摘要:项目环境代码完成时间废话不多说,先放源码安装依赖运行项目打包项目目录结构先在主进程引入在方法里添加以下代码,获取打印机列表在主线程下,通过对象监听渲染线程传过来的事件在主线程中获取打印机列表通过发送事件到渲染线程,同时将 项目环境 node 10.15.3yarn 1.15.2win10代码完成时间2019-4-18 废话不多说,先放源码 GitHub https://github....

    xzavier 评论0 收藏0
  • 使用Electron+avalon+jquery+codemirror开发自己IDE

    摘要:入口,可为数组指明那些文件名是要扫描到的没什么稀奇的,就是配了的路径和注意如果你要使用也是,尽量使用来解决的坑,的配置我就不讲了配置好了就可以愉快的开始开发了其实还是传统的写网页而已,只不过可以加入了,很酷炫是不是 在纠结了一个月之后,发了无数帖子,我终于舍弃nw.js投入electron的怀抱,事实证明我是对的,electron居然有中文文档,还有官方示例,简直不要太爽! showI...

    jzzlee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<