electron

  1. Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。
  2. Electron通过将ChromiumNode.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。
  3. Electron热门产品  GitHub 的 Atom 和微软的 Visual Studio Code,这两款当下热门的编辑器都是使用Electron开发的。 而且对JavaScript的支持也都很棒。
  4. Electron只用了Chromium的渲染库而不是其全部组件。 这使得升级Chromium更加容易,但也意味着Electron缺少了Google Chrome里的一些浏览器相关的特性
  5. Electron同时在主进程和渲染进程中对Node.js 暴露了所有的接口
  6. Electron支持chrome开发者工具调试  win.webContents.openDevTools()

使用vscode调试

1.在 VSCode 中打开一个 Electron 项目。
$ git clone git@github.com:electron/electron-quick-start.git
$ code electron-quick-start
Copy
2.添加一个 .vscode/launch.json 文件并使用以下配置:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "args" : ["."]
    }
  ]
}

  

注册全局快捷键

const {app, globalShortcut} = require('electron')

app.on('ready', () => {
  // 注册一个 'CommandOrControl+X' 的全局快捷键
  const ret = globalShortcut.register('CommandOrControl+X', () => {
    console.log('CommandOrControl+X is pressed')
  })

  if (!ret) {
    console.log('registration failed')
  }

  // 检查快捷键是否注册成功
  console.log(globalShortcut.isRegistered('CommandOrControl+X'))
})

app.on('will-quit', () => {
  // 注销快捷键
  globalShortcut.unregister('CommandOrControl+X')

  // 清空所有快捷键
  globalShortcut.unregisterAll()
})

相关方法
 globalShortcut.register(accelerator, callback)

有用的应用  https://electronjs.org/apps/mockman   模拟服务器  

https://electronjs.org/apps/advanced-rest-client    模拟请求

https://electronjs.org/apps/reversee

https://electronjs.org/apps/ling

https://electronjs.org/apps/hyper

https://electronjs.org/apps/system-designer

https://electronjs.org/apps/altair                 xxxxx

神奇的remote

https://imweb.io/topic/5b3b72ab4d378e703a4f4435                     remote

常见错误

1:渲染进程中引用不了nodejs

var win = new BrowserWindow({ 600, height: 800, webPreferences: { nodeIntegration: true } })

原文地址:https://www.cnblogs.com/honghong87/p/10156424.html