<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                Electron為主進程( main process)和渲染器進程(renderer processes)通信提供了多種實現方式,如可以使用[`ipcRenderer`](https://www.electronjs.org/docs/api/ipc-renderer)和[`ipcMain`](https://www.electronjs.org/docs/api/ipc-main)模塊發送消息,使用[remote](https://www.electronjs.org/docs/api/remote)模塊進行RPC方式通信 ## [ipcMain](https://www.electronjs.org/docs/api/ipc-main) >從主進程到渲染進程的異步通信 ### [`ipcMain.on(channel, listener)`](https://www.electronjs.org/docs/api/ipc-main#ipcmainonchannel-listener) 監聽`channel`(channel為自定義的字符串),當接收到新的消息時`listener`會以`listener(event, args...)`的形式被調用。 下面是在渲染和主進程之間發送和處理消息的一個例子: ~~~ main.js // 在主進程中. const { ipcMain, BrowserWindow} = require('electron') let mainWindow app.on('ready', createWindow) //當應用被激活時發送異步消息。 各種操作都可以觸發此事件, 例如首次啟動應用程序、嘗試在應用程序已運行時或單擊應用程序的塢站或任務欄圖標時重新激活它 app.on('activate', function () { if (mainWindow === null){ createWindow() } //主動發送消異步消息到渲染進程(演示用) setTimeout(()=>{ mainWindow.webContents.send },5000); //主動發送消異步消息到渲染進程 mainWindow.webContents.on('did-finish-load', () => { mainWindow.webContents.send('asynchronous-message', '嘿嘿嘿!') }) }) function createWindow () { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }) mainWindow.loadFile('index.html') mainWindow.on('closed', function () { mainWindow = null }); } //監聽渲染進程的異步消息并被動響應 ipcMain.on('asynchronous-message', (event, arg) => { console.log("主進程收到的消息:",arg) // prints "ping" //向渲染進程響應(發送)數據,異步方法用reply event.reply('asynchronous-reply', 'pong') }) //監聽渲染進程的同步消息并被動響應 ipcMain.on('synchronous-message', (event, arg) => { console.log(arg) // prints "ping" //響應渲染進程的消息,同步方法用returnValue event.returnValue = 'pong' }) ~~~ ## [ipcRenderer](https://www.electronjs.org/docs/api/ipc-renderer) >從渲染器進程到主進程的異步通信。 ~~~ //在渲染器進程 (網頁) 中。 const { ipcRenderer } = require('electron') //通過`channel`發送同步消息到主進程 console.log(ipcRenderer.sendSync('synchronous-message', 'ping')) // prints "pong" //ipcRenderer.on(channel, listener) //監聽 channel,接受主進程的消息 當新消息到達,將通過 listener(event, args...) 調用 listener ipcRenderer.on('asynchronous-reply', (event, arg) => { console.log('渲染進程接受到的數據',arg) // prints "pong" }) //發送異步消息到主進程 ipcRenderer.send(channel, ...args) ipcRenderer.send('asynchronous-message', 'ping') ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看