图集1/3

正文 2250字数 39,696阅读


安装electron 包
npm install --save-dev electron
Run code
Cut to clipboard


    构建electron工程
    在app目录下新建俩个文件
    main.js #electron主工程文件
    preload.js # 用于页面预加载, 使页面渲染进程可以和主进程通信
    main.js代码如下:
    const {app, BrowserWindow, ipcMain} = require('electron') const path = require('path') let win let windowConfig = { width: 800, height: 600, //窗口大小 webPreferences: { preload: path.join(__dirname, 'preload.js'), //预加载 消息通信 文件 nodeIntegration: true, contextIsolation: false, //上下文环境隔离设置, 影响预加载文件中的消息通信函数能否在前段页面中使用, 设置为false不隔离 webSecurity: false } } function createWindow () { win = new BrowserWindow(windowConfig) win.loadFile(path.join(__dirname, 'index.html')) //加载页面文件 win.webContents.openDevTools() win.on('close', () => { win = null }) win.on('resize', () => { win.reload() }) } app.on('ready', createWindow) app.on('window-all-closed', () => { app.quit() }) app.on('activate', () => { if (win == null) { createWindow() } }) //接收 消息 test1, 打印消息内容 ipcMain.on('test1', (event, arg) => { console.log(arg) })
    Run code
    Cut to clipboard


      preload代码如下:
      const { ipcRenderer } = require('electron') window.fromWebToElectron = function (a) { console.log('打印消息内容', a) //渲染进程往主进程发送test1消息 ipcRenderer.send('test1', a) }
      Run code
      Cut to clipboard


        编辑vue中的HelloWorld.vue文件,
        添加一个发送消息的测试按钮, 点击按钮,
        发送一次 test1的消息, 测试下,修改后的代码如下:
        <template> <div class="hello"> <button v-on:click="btnTest()">test</button> </div> </template> <script> const ipcsend = window.fromWebToElectron export default { name: 'HelloWorld', created () { }, methods: { btnTest: function () { console.log(ipcsend) ipcsend ? ipcsend('test1 content') : alert('click') } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> h1, h2 { font-weight: normal; } ul { list-style-type: none; padding: 0; } li { display: inline-block; margin: 0 10px; } a { color: #42b983; } </style>
        Run code
        Cut to clipboard


          然后重新build vue工程
          回到vue上级目录, 运行npm run start
          点击测试按钮, 查看控制台中打印的消息内容, 工程搭建完成