成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Electron 渲染進程之間的通信

trilever / 2648人閱讀

摘要:對于主進程和渲染進程之間的通信,使用是很方便的。但是渲染進程之間呢哈哈,我這個碼農(nóng)看來又踩到一個坑了。方案一使用全局共享屬性但不具備事件機制,沒有實質(zhì)的通信功能。方案二利用主進程做消息中轉(zhuǎn)此方案還是很好的。

菜鳥的 Electron 踩坑集錦。

對于 主進程和渲染進程之間的通信,使用 IPC 是很方便的。但是渲染進程之間呢? 哈哈,我這個碼農(nóng)看來又踩到一個坑了。

方案一:

使用全局共享屬性:

// In the main process.
global.sharedObject = {
  someProperty: "default value"
}
// In page 1.
require("electron").remote.getGlobal("sharedObject").someProperty = "new value"
// In page 2.
console.log(require("electron").remote.getGlobal("sharedObject").someProperty)

但不具備事件機制,沒有實質(zhì)的通信功能。 當然說到這里就想起了 Node 中的全局對象了。

https://electron.atom.io/docs...

方案二

利用主進程做消息中轉(zhuǎn): 此方案還是很好的。

// In the main process.
ipcMain.on("ping-event", (event, arg) => {
  yourWindow.webContents.send("pong-event", "something");
}

// In renderer process
// 1
ipcRenderer.send("ping-event", (event, arg) => {
    // do something
  }
)

// 2
ipcRenderer.on("pong-event", (event, arg) => {
    // do something
  }
)
方案三

利用 remote 接口直接獲取渲染進程發(fā)送消息:

// renderer process
// get Window by ID
remote.BrowserWindow.fromId(winId).webContents.send("ping", "someThing");

渲染進程獲取 ID 就有多種方法了:

第一種: 通過 global 設置和獲取
第一種是: 主進程創(chuàng)建事件,發(fā)送信息

// main process
win1.webContents.send("distributeIds",{
    win2Id : win2.id
});
win2.webContents.send("distributeIds",{
    win1Id : win1.id
});

第三種: 寫個文件什么的都可以,方法還是多種多樣的。

參考:

https://github.com/electron/e...

https://github.com/electron/e...

https://juejin.im/entry/58869...

需要了解的 API:

https://electron.atom.io/docs...

https://electron.atom.io/docs...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82803.html

相關(guān)文章

  • electron進程進程之間通信

    摘要:主進程在里,運行里腳本的進程被稱為主進程。渲染進程由于使用來展示頁面,所以的多進程結(jié)構(gòu)也被充分利用。每個的頁面都在運行著自己的進程,這樣的進程我們稱之為渲染進程。在一般瀏覽器中,網(wǎng)頁通常會在沙盒環(huán)境下運行,并且不允許訪問原生資源。 主進程 在 Electron 里,運行 package.json 里 main 腳本的進程被稱為主進程。在主進程運行的腳本可以以創(chuàng)建 web 頁面的形式展示...

    sihai 評論0 收藏0
  • Electron】酷家樂客戶端開發(fā)實踐分享 — 進程通信

    摘要:為了能使不同的進程互相訪問資源并進行協(xié)調(diào)工作,才有了進程間通信。此時,就需要與渲染進程通信了。發(fā)消息,渲染進程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂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】酷家樂客戶端開發(fā)實踐分享 — 進程通信

    摘要:為了能使不同的進程互相訪問資源并進行協(xié)調(diào)工作,才有了進程間通信。此時,就需要與渲染進程通信了。發(fā)消息,渲染進程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂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】酷家樂客戶端開發(fā)實踐分享 — 進程通信

    摘要:為了能使不同的進程互相訪問資源并進行協(xié)調(diào)工作,才有了進程間通信。此時,就需要與渲染進程通信了。發(fā)消息,渲染進程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂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 快速入門

    摘要:當一個實例被銷毀后,相應的渲染進程也會被終止。之所以命名為,主要是為了與主進程這個概念對應。部分在事件觸發(fā)后才能使用。當全部窗口關(guān)閉時退出。主進程接收到消息并處理之后,會返回處理結(jié)果。 簡介 Electron 是一個可以使用 Web 技術(shù)如 JavaScript、HTML 和 CSS 來創(chuàng)建跨平臺原生桌面應用的框架。借助 Electron,我們可以使用純 JavaScript 來調(diào)用豐...

    Drummor 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<