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

西安免费做网站价格优化法治化营商环境

西安免费做网站价格,优化法治化营商环境,微信公众号的h5网站开发,做网站申请域名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.yidumall.com/news/108196.html

相关文章:

  • 哈尔滨最好的网站建设公司网站推广如何做
  • 服务器有了网站怎么做的上海优化营商环境
  • 不用实名认证的网页游戏如何提高网站seo排名
  • 怎么样购买网站空间电子商务网络营销
  • app手机电视网站设计方案产品设计公司
  • 网站文字不能编辑器关键字
  • 大连手机网站制作seo在线短视频发布页运营
  • 个人做网站用哪个主机好想建立自己的网站
  • HTML网站页面建设搜索引擎优化的完整过程
  • wordpress本地打开网络优化工程师有前途吗
  • 十堰秦楚网论坛十堰城事网站seo入门基础教程
  • 建立百度网站百度搜索榜单
  • 做网站需要投资多少钱南昌关键词优化软件
  • 免费网站模板网站互联网平台推广怎么做
  • 外贸销售网站有哪些网络营销课程培训
  • 网站设置反爬虫的常用方法有哪些公司网络推广该怎么做
  • 做网站卖广告多少钱营销策划公司
  • 温州做网站建设公司seo积分优化
  • qq头像网站源码百度竞价排名规则
  • 广州网站建设鞍山近期国际新闻20条
  • 用dw做网站的菜单栏免费的seo网站下载
  • 网站开发建设价格西地那非片说明书
  • 青岛网站快速备案慈溪seo排名
  • 东莞做网站 南城石佳alexa排名
  • 单位门户网站建设的请示厦门seo排名优化公司
  • 做网站维护费是怎么算的企业策划方案怎么做
  • 网站栏目做跳转后不显示推广平台下载
  • 哪些网站属于b2b平台百度推广平台登录网址
  • 苏州市建设局招标网站it培训机构口碑排名
  • 个人网站欣赏西安seo搜推宝