Подскажите на Электрон
Как заменить функцию JavaScript prompt
на электроне?
Может кто-нибудь взять мне пример?
Я пытаюсь использовать эту функцию prompt
, но возникает ошибка:
Uncaught Error: prompt () есть и не будет поддерживаться.
2 ответа
prompt
, confirm
а также alert
являются функциями, которые блокируют поток выполнения скрипта до тех пор, пока пользователь не введет данные, и поэтому электронная команда не поддержала его. Вместо этого вы можете использовать сторонний пакет по той же причине.
Вот некоторые пакеты, которые предоставляют эту функциональность асинхронным способом
https://www.npmjs.com/package/smalltalk
Мой ответ немного опоздал, но, возможно, все еще полезен для других.
Так как команда Electron не хочет реализовывать prompt()
Поведение себя, я разработал это решение: Electron-OSX-подскажите. Он предоставляет основанный на 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);
});
Встроенная электронная подсказка от процесса рендерера:
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 и т. д.