【Electron】桌面应用-自定义退出程序的方式

主要吧,我先是创建了一个js文件,在里面这么写着:

function toClose() {
  const ipcRenderer = require('electron')
  ipcRenderer.send('close-app')
}

然后再在index.html中引入js文件,在div标签中添加属性onclick="toClose()"
但是运行后会提示不能在初始化之前使用ipcRenderer。
然后我想着把require放在函数外面,当然这是没什么作用的。
之后我有将函数放在preload.js之中,因为这里已经由现成的引入和函数了,那么其他的能用没道理我的不能用。
我的还是不能用。

最后我的解决方法是在preload.js中(也可以不在)这么写:

// preload.js
const { contextBridge, ipcRenderer } = require('electron')
// 此处省略一些无关代码
contextBridge.exposeInMainWorld('window_control', {
    toClose: () => ipcRenderer.send('close-app'),
    toMinimize: () => ipcRenderer.send('min-app'),
})

之后在renderer.js中(也可不在)定义按钮的监听函数:

对了,我在这里使用querySelector().onclick = () => {}也无效,很迷茫~怀念vue了。

// renderer.js
document.querySelector(".my-btn-close").addEventListener('click', () => {
    window.window_control.toClose()
})
posted @ 2022-04-01 23:25  不正游侠  阅读(1001)  评论(0编辑  收藏  举报