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