Учебник по Electron.js

Метод showMessageBox()

Метод showMessageBox() объекта dialog асинхронно отображает диалоговое окно с сообщением и одной или несколькими кнопками. Формат метода:

const { dialog } = require('electron');
Promise<Объект> = dialog.showMessageBox([<Ссылка на окно>, ]<Опции>)

Если в первом параметре указана ссылка на родительское окно, то диалоговое окно будет модальным. Во втором параметре указывается объект со следующими опциями:

Метод showMessageBox() возвращает объект Promise, содержащий объект с двумя свойствами:

Пример отображения окна внутри обработчика события:

ipcMain.on('event-show-dialog_info', async (e) => {
   let result = await dialog.showMessageBox(win, {
      message: 'Текст сообщения',
      detail: 'Дополнительные сведения',
      title: 'Заголовок окна',
      buttons: ['OK', 'Отмена'],
      defaultId: 0,
      cancelId: 1,
      type: 'info',
      noLink: true,
      checkboxLabel: 'checkboxLabel',
      checkboxChecked: true,
      normalizeAccessKeys: false
   });
   console.log(result); // { response: 1, checkboxChecked: true }
});

Можно также воспользоваться методом showMessageBoxSync() объекта dialog, который выполняет операцию синхронно, блокируя процесс. Формат метода:

const { dialog } = require('electron');
<Индекс кнопки> = dialog.showMessageBoxSync([<Ссылка на окно>, ]<Опции>)

Все параметры аналогичны одноименным параметрам метода showMessageBox(). Метод showMessageBoxSync() возвращает индекс кнопки из массива buttons, нажатой пользователем. Пример отображения окна внутри обработчика события:

ipcMain.on('event-show-dialog_error', (e) => {
   let result = dialog.showMessageBoxSync(win, {
      message: 'Текст сообщения',
      detail: 'Дополнительные сведения',
      title: 'Заголовок окна',
      buttons: ['OK', 'Отмена'],
      defaultId: 0,
      cancelId: 1,
      type: 'error',
      noLink: true,
      normalizeAccessKeys: false
   });
   console.log(result); // 0 или 1
});