Electronクローズボタン弾枠確認
Electronクリックオフボタン弾枠確認
理由:
一般的なクライアントには、ユーザーが閉じるボタンをクリックした後、ポップアップボックスがポップアップされ、確認とキャンセルボタンがあり、ユーザーにクライアントの閉じるかどうかを確認する必要があります.
解決:
メールでjsではmainWindowに対してcloseのイベントリスニングを行う.デフォルトの動作をブロックして(必須)、dialogのコールバック関数に対して対応する処理方法を実行するこの例では、クリック後にフレーム確認を最小化し、閉じることを確認するために使用します.
const {app, BrowserWindow, globalShortcut, dialog, Menu, ipcMain} = require('electron')
const path = require('path')
let mainWindow
function createWindow () {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
preload: path.resolve(path.join(__dirname, './src/preload.js'))
}
});
mainWindow.loadFile('index.html');
mainWindow.on('close', (e) => {
dialog.showMessageBox({
type: 'info',
title: 'Information',
defaultId: 0,
message: ' ?',
buttons: [' ',' ']
},(index)=>{
if(index===0){
e.preventDefault(); // ,
mainWindow.minimize(); //
} else {
mainWindow = null;
//app.quit(); // quit();
app.exit(); //exit() , quit();
}
})
});
}
app.on('ready', createWindow)
app.on('activate', function () {
if (mainWindow === null) createWindow()
});
その他
他の操作が必要な場合はdialogのbuttonsに追加し、コールバック関数で返されるindexの値を判断して操作すればよい.