Interazione con l'utente

Questo esempio illustra come utilizzare i metodi API forniti per richiedere input o fornire informazioni all'utente tramite un messaggio.

var macro = createMacro(function*(){
  'use strict';
  
  // L'oggetto "ui" fornisce funzioni per richiedere informazioni all'utente e visualizzare informazioni
  
  // Dichiarare variabili da utilizzare successivamente
  var username;
  var password;
  var flavor;
  var scoops;
  
  //Begin Generated Macro
  var ps = session.getPresentationSpace();
  
  try {
    // Richiedere all'utente di immettere il proprio nome e memorizzarlo in una variabile.
    // Notare che la parola chiave 'yield' è necessaria per bloccare l'esecuzione in attesa dell'input dell'utente.
    username = yield ui.prompt('Please enter your username');
    
    // Richiedere all'utente di immettere un valore, proponendo una risposta predefinita.
    flavor = yield ui.prompt('What is your favorite flavor of ice cream?', 'Chocolate');
    
    // Richiedere all'utente di immettere informazioni riservate utilizzando l'opzione 'mask'. Durante l'immissione il testo sarà nascosto.
    // Se un parametro non viene utilizzato, è possibile usare 'null' per specificare che non deve essere usato.
    // Qui lo illustriamo specificando che non è necessario mostrare un valore predefinito.
    password = yield ui.prompt('Please enter your password', null, true);
    
    // La funzione prompt restituisce null se l'utente fa clic sul pulsante 'Cancel' anziché sul pulsante 'OK'.
    // Un modo per gestire questo caso consiste nell'eseguire il wrapping della chiamata in un blocco try/catch.
    scoops = yield ui.prompt('How many scoops would you like?');
    if (scoops === null) {
      // Termina la macro.
      return;
      // In alternativa potrebbe generare un Error che potrebbe essere catturato nel "catch" sotto
    }
    // Utilizzare i valori raccolti per ordinare il gelato
    ps.sendKeys(username + ControlKey.TAB + password + ControlKey.ENTER);
    yield wait.forCursor(new Position(5, 1));
    ps.sendKeys(flavor + ControlKey.TAB + scoops + ControlKey.ENTER);

    // Visualizzare un messaggio all'utente. Utilizzando la parola chiave 'yield' davanti alla chiamata,
    // l'esecuzione della macro verrà bloccata fino a quando l'utente sceglie il pulsante 'OK'.
    yield ui.message('Order successful. Enjoy your ' + scoops + ' scoops of ' + flavor + ' ice cream ' + username + '!');
  } catch (error) {
    // Qui abbiamo usato l'oggetto ui per visualizzare un messaggio che informa che si è verificato un errore
    yield ui.message(error.message);
  }
  //Fine della macro generata

});

return macro();