Electronクローズボタン弾枠確認

7579 ワード

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の値を判断して操作すればよい.