只使用Bootstrap的electron桌面應用-自定義退出程式的方式
阿新 • • 發佈:2022-04-02
主要吧,我先是建立了一個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()
})