Заменить "Подсказка" на Электрон

Как заменить функцию prompt javascript в электронном?

Может кто-нибудь привести пример?

Я пытался использовать функцию prompt, но получил ошибку:

Uncaught Error: prompt() есть и не будет поддерживаться.

Ответ 1

prompt, confirm И alert - это функции, которые блокируют поток выполнения скрипта до тех пор, пока пользователь не введет данные, и команда поддержки по электронной почте не поддержала его. Вместо этого вы можете использовать сторонний пакет по той же причине.

Вот некоторые пакеты, которые предоставляют эту функциональность асинхронным способом

https://www.npmjs.com/package/smalltalk

https://www.npmjs.com/package/vex-js

https://www.npmjs.com/package/dialogs

Ответ 2

Встроенная электронная подсказка из процесса визуализации:

const {dialog} = require('electron').remote

const dialogOptions = {type: 'info', buttons: ['OK', 'Cancel'], message: 'Do it?'}

dialog.showMessageBox(dialogOptions, i => console.log(i))

i - индекс кнопок, поэтому "ОК" - 0, "Отмена" - 1 и т.д.

Ответ 3

Мой ответ немного опоздал, но, возможно, все еще полезен для других.

Поскольку команда Electron не хочет реализовывать поведение prompt() самостоятельно, я разработал это решение: Electron-osx-prompt. Он предоставляет основанный на Promise способ получения простого пользовательского ввода и адаптируется к стилю macOS.

// From renderer or main process, doesn't matter
const userPrompt = require('electron-osx-prompt');

const icon = __dirname + '/icon.png';

userPrompt('Label text', 'Placeholder text', icon)
  .then(input => {
    console.log(input);
  })
  .catch(err => {
    console.log(err);
  });