Comment remplacer la fonction de javascript Prompt
sur electron?
Quelqu'un peut-il me prendre un exemple?
J'essaie d'utiliser cette fonction Prompt
, mais une erreur se produit:
Erreur non capturée: Prompt () est et ne sera pas pris en charge.
Prompt
, confirm
et alert
sont des fonctions qui bloquent le thread d'exécution du script jusqu'à ce qu'une entrée utilisateur soit prise et c'est la raison pour laquelle electron n'a pas pris en charge cette fonctionnalité. Au lieu de cela, vous pouvez utiliser un package tiers pour la même raison.
Voici quelques paquets qui fournissent cette fonctionnalité de manière async
https://www.npmjs.com/package/Smalltalk
Invite électronique intégrée du processus de rendu:
const {dialog} = require('electron').remote
const dialogOptions = {type: 'info', buttons: ['OK', 'Cancel'], message: 'Do it?'}
dialog.showMessageBox(dialogOptions, i => console.log(i))
i
est l'index des boutons, donc 'OK' vaut 0, 'Annuler' vaut 1, etc.
Ma réponse est un peu tardive mais peut-être utile pour les autres.
Étant donné que l'équipe Electron ne souhaitait pas implémenter le comportement Prompt()
, j'ai développé cette solution: electron-osx-Prompt . Elle fournit un moyen basé sur Promise pour obtenir des entrées simples et s'adapte au système d'exploitation macOS. coiffant.
// 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);
});