亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

electron 筆記 02 進程間通訊

標簽:
JavaScript

主进程与渲染进程

图片描述

方式一 ipc

main.js

const {app, BrowserWindow, ipcMain} = require('electron')

app.on('ready',()=>{
    // require('devtron').install()
    let mainWindow = new BrowserWindow({
        width: 1600,
        height: 1200,
        webPreferences:{
            // 注入node模块
            nodeIntegration: true,
            contextIsolation: false
        }
    })

    mainWindow.loadFile('index.html')
    mainWindow.webContents.openDevTools()
    ipcMain.on('msg',(event,arg)=>{
        // console.log(event)
        console.log(arg)
        event.reply('msgMain','hello from main process')
    })
})

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    <meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    <title>Hello World!</title>
</head>
<body>
<h1>Hello Electron!</h1>
<br>
<button id="send">send to main</button>

<script src="renderer.js"></script>
</body>
</html>

renderer.js

const { ipcRenderer} = require('electron')
window.addEventListener('DOMContentLoaded',()=>{
    document.getElementById('send').addEventListener('click',()=>{
        ipcRenderer.send('msg','hello from renderer')
    })
    ipcRenderer.on('msgMain',(event,arg)=>{
        // console.log(event)
        console.log(arg)
    })
})

效果

点击界面的按钮
图片描述

命令行控制台
图片描述

开发者工具控制台
图片描述

方式二 remote

main.js

const {app, BrowserWindow, ipcMain} = require('electron')

app.on('ready',()=>{
    // require('devtron').install()
    let mainWindow = new BrowserWindow({
        width: 1600,
        height: 1200,
        webPreferences:{
            // 注入node模块
            nodeIntegration: true,
            contextIsolation: false,
            enableRemoteModule: true
        }
    })

    mainWindow.loadFile('index.html')
    mainWindow.webContents.openDevTools()
    ipcMain.on('msg',(event,arg)=>{
        // console.log(event)
        console.log(arg)
        event.reply('msgMain','hello from main process')
    })
})

renderer.js

const {ipcRenderer} = require('electron')
const {BrowserWindow} = require('electron').remote
window.addEventListener('DOMContentLoaded', () => {
    document.getElementById('send').addEventListener('click', () => {
        ipcRenderer.send('msg', 'hello from renderer')

        let subWindow = new BrowserWindow({
            width: 400,
            height: 300,
            webPreferences: {
                // 注入node模块
                nodeIntegration: true
            },
            // 模态
            modal: true
        })

        subWindow.loadFile('two.html')
    })
    ipcRenderer.on('msgMain', (event, arg) => {
        // console.log(event)
        console.log(arg)
    })
})

效果

图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消