【问题标题】:Interaction between Electron and Angular JSElectron 和 Angular JS 之间的交互
【发布时间】:2019-01-13 07:51:00
【问题描述】:

我通过用电子包装我的网页,使用电子开发了一个桌面应用程序。 现在如何使我的网页和电子交互,即捕获网页内的任何点击事件并在 main.js 等中调用电子函数并将一些数据从电子传递到网页。

注意:我的网页是使用 angular 1.5 开发的

【问题讨论】:

    标签: electron ipc interaction


    【解决方案1】:

    我建议在继续之前检查电子快速入门存储库。

    https://github.com/electron/electron-quick-start

    https://github.com/electron/electron-api-demos

    为了在主进程和渲染器进程之间进行通信,您应该查看 ipcMain 和 ipcRenderer (ipcMain)。

    文档中提供的示例仅供参考。

    // In main process.
    const {ipcMain} = require('electron')
    ipcMain.on('asynchronous-message', (event, arg) => {
      console.log(arg) // prints "ping"
      event.sender.send('asynchronous-reply', 'pong')
    })
    
    ipcMain.on('synchronous-message', (event, arg) => {
      console.log(arg) // prints "ping"
      event.returnValue = 'pong'
    })
    
    
    // In renderer process (web page).
    const {ipcRenderer} = require('electron')
    console.log(ipcRenderer.sendSync('synchronous-message', 'ping')) // 
    prints "pong"
    
    ipcRenderer.on('asynchronous-reply', (event, arg) => {
      console.log(arg) // prints "pong"
    })
    ipcRenderer.send('asynchronous-message', 'ping')
    

    【讨论】:

    • 当您的网页基于 Angular 2 或更高版本构建时,这将正常工作,但我要求使用 angular 1.x/1.5 的场景
    • 由于我在 AngularJS 1.6 应用程序中使用它,我不能同意你的说法。您能否详细说明为什么这不起作用?
    • @DEDaniel :我们在哪里定义 "const {ipcRenderer} = require('electron')" 。是在控制器中还是在其他地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2019-11-10
    • 2012-09-06
    • 2016-11-11
    • 2016-05-15
    • 2015-03-31
    • 2014-06-28
    相关资源
    最近更新 更多