web-dev-qa-db-fra.com

Invite sur Electron

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. 

13
Thales

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

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

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

10
Zayn Ali

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.

1
Damjan Pavlica

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);
  });
0
Peter Freeman