当前位置: 首页 > news >正文

西安免费做网站价格广州seo公司推荐

西安免费做网站价格,广州seo公司推荐,长沙网站建设 个人,javaweb项目源码免费下载Electron中IPC 进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。在 Electron 中,进程使用 ipcMain 和 ipcRenderer 模块,通过开发人员定义的“通道”传递消息来进行通信。 本文介绍以下几个方面: 1-渲染进程到…

Electron中IPC

进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。在 Electron 中,进程使用 ipcMain 和 ipcRenderer 模块,通过开发人员定义的“通道”传递消息来进行通信。

本文介绍以下几个方面:

  • 1-渲染进程到主进程(单项)

ipcRender.send()
  • 2-主进程到渲染进程(单项)

WebContents.send()
  • 3-渲染进程到到主进程(双向)

ipcRender.invoke(渲染进程)
ipcMain.handle(主进程)

1.渲染进程到主进程

  • 渲染进程通过ipcRender.send()API发送消息

  • 主进程通过ipcMain.on()API接受信息

2.主进程到渲染进程

  • 主进程通过WebContents.send()发送数据

  • 渲染进程通过ipcRender.on()获取数据

3.渲染进程到主进程(双向)

  • 渲染进程通过invoke调用API

  • 主进程通过handle处理API

示例

功能:

  • 渲染进程发送111到主进程

  • 主进程发送222到渲染进程

  • 渲染进程invoke主进程

// main.js
const { app, BrowserWindow,ipcMain } = require("electron")
const path = require("path")
var id = "";
const createWindow = () => {const win = new BrowserWindow({width: 800,height: 600,show: false,webPreferences:{preload:path.join(__dirname,"./preload.js")}})win.loadFile("./index.html")win.show()id = win.id
}
​
app.whenReady().then(() => {createWindow()
})
​
ipcMain.on("messageToMain",(event,text)=>{// ipcMain.on 来接收渲染进程发送的数据console.log("主进程从渲染进程接收到的数据:"+text);// 获取当前窗口// BrowserWindow.webContents.send 发送数据BrowserWindow.fromId(id).webContents.send("messageFromMain","222")
})
​
// ipcMain.handle 返回invoke调用
ipcMain.handle("getData",()=>{return "333"
})
​
​
app.on("window-all-closed", () => {app.quit()
})
// preload.js
const { contextBridge, ipcRenderer } = require("electron")
contextBridge.exposeInMainWorld("electronIpc", {// 预加载脚本暴露 ipcRenderer.sendsend: (text) => { ipcRenderer.send('messageToMain', text) },// 预加载脚本暴露 ipcRenderer.ononGet: (callback) => {ipcRenderer.on("messageFromMain", (event, text) => {callback(text)})},// 预加载脚本暴露 ipcRenderer.invokegetData: () => { return ipcRenderer.invoke("getData") }
})
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Electron的ipc通讯</title>
</head>
<body><h2>渲染进程到主进程(单向)</h2><div><button id="btnToMain">渲染进程发送到主进程</button></div><div><input type="text" id="sendText"></div><br><br><div>收到主进程发送到渲染进程的消息:</div><div><input type="text" id="messageFromMain" style="width: 300px;"></div><br><div><button id="btnInvoke">渲染进程invoke主进程</button></div><div><input type="text" id="messageInvokeMain" style="width: 300px;"></div><script src="./index.js"></script>
</body>
</html>
// index.js
window.onload = () => {var btnToMain = document.getElementById("btnToMain");btnToMain.addEventListener("click", () => {var sendText = document.getElementById("sendText").value;window.electronIpc.send(sendText)})
​window.electronIpc.onGet((text) => {var messageFromMain = document.getElementById("messageFromMain");messageFromMain.value = text;})
​var btnInvoke = document.getElementById("btnInvoke");btnInvoke.addEventListener("click",async ()=>{var getData = await window.electronIpc.getData();var messageInvokeMain = document.getElementById("messageInvokeMain");messageInvokeMain.value = getData;})
}

效果

http://www.rdtb.cn/news/17018.html

相关文章:

  • 免费做图网站有哪些百度收录检测
  • 网站怎么做支付宝付款做网站推广公司
  • 沈阳app制作网站建设推百度网站大全
  • 深圳门户网站建设矿产网站建设价格
  • 关于做美食的小视频网站360优化大师app
  • 如何外贸seo网站建设免费网站seo优化
  • 营销策划方案结构网站seo关键词排名优化
  • 做学校网站素材图片素材扫描图片找原图
  • ps图做ppt模板下载网站安卓系统优化大师
  • 厦门无忧网站建设有限公司正规seo排名多少钱
  • 大型手机网站制作网站如何快速被百度收录
  • 网站无缝背景网站页面的优化
  • 深圳大鹏新区葵涌街道网站优化培训
  • 武汉做网站好万网建站
  • 快云助手网站建设视频百度手机版
  • 支付网站建设的分录朋友圈广告投放平台
  • 番禺高端网站建设山西seo排名厂家
  • 江苏宜兴做网站的电话哈尔滨网站优化流程
  • wordpress themes free download深圳优化服务
  • 芜湖学校网站建设电话seo排名优化技术
  • h5网站价格网站宣传推广策划
  • 网站解析怎么做网络热词排行榜
  • 网站可以更更换空间吗seo和sem的关系
  • 怎么找一家公司的网站seo网站建设优化什么意思
  • 温州做网站哪里好平台优化是指什么
  • 做网站推广怎么跟客户沟通无锡网站制作无锡做网站
  • 长沙天津网站建设脑白金网络营销
  • 广州公司做网站刚刚突发1惊天大事
  • 有好看图片的软件网站模板下载成品网站1688入口网页版怎样
  • 没有网站能做淘宝客吗市场推广方法