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

零食网站建设前的市场分析wordpress插件 商品

零食网站建设前的市场分析,wordpress插件 商品,学院招生网站建设方案,有pc网站 移动网站怎么做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.yayakq.cn/news/910906/

相关文章:

  • app软件网站建设泰安百姓网
  • 湖南省住房和城乡建设厅老网站定制虚拟偶像汉化破解版
  • 合肥企业建站系统模板专门做地图的网站
  • 重庆网站的推广方式知名企业公司
  • 做网站设计哪家好农村电商网站建设ppt
  • 网站开发绩效考核与薪酬手机网站域名注册
  • 浙江网站建设价格wordpress如何更换主题
  • 网站推广方式广告联盟app手机版
  • h5网站架设安通建设有限公司网站
  • 帆布网站做哪个wordpress分类目录小工具
  • 网站开发时的闭包写法网站开发技术的简历
  • 网站建设违约责任和龙建设局网站
  • 上海新建设建筑设计有限公司网站wordpress 登录没反应
  • 网页前端开发框架哈尔滨seo优化排名推广
  • 佛山住房和城乡建设厅网站自己设计虚拟人物app
  • 阜城县网站建设公司wordpress底部栏文字
  • 长沙建设网站哪家好阜宁做网站找哪家好
  • 旅游电子商务网站建设规划方案外贸网站建设怎么建设
  • 电子商务网站的开发流程爱站网使用体验
  • 深圳市长城建设有限公司网站做爰网站名称
  • 牛商网网站模板友情链接交换工具
  • 济宁网站建设第一品牌Wordpress媒体库途径
  • 网站备案信息注销原因外贸网站建设规划
  • 餐饮网站制作成都甲壳虫品牌设计公司
  • 网站备案制度wordpress 自动广告
  • 医院做网站是最简单的前端吗怎样在国外网站上做外贸广告
  • 高仿id97网站模板100个经典产品设计
  • 重庆做木门网站公司简介怎样在拼多多上卖自己的产品
  • 一款游戏的制作过程seo网站诊断
  • 东莞电子网站建设深圳临时工最新招聘信息