1. 程式人生 > 其它 >只使用Bootstrap的electron桌面應用-自定義退出程式的方式

只使用Bootstrap的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()
})