Concedi alle pagine web l'accesso programmatico a ChromeOS Desk

1. Prima di iniziare

Il connettore delle scrivanie è una funzionalità di ChromeOS che consente alle pagine web di accedere in modo programmatico alle scrivanie virtuali di ChromeOS. In questo codelab, imparerai a utilizzare Desk Connector con Chrome DevTools.

Prerequisiti

Cosa imparerai a fare

  • Come impostare le proprietà della finestra.
  • Come lanciare una scrivania.
  • Come rimuovere una scrivania.
  • Come ottenere una scrivania attiva.
  • Come passare a un'altra scrivania.

Che cosa ti serve

2. Configurazione

Per la configurazione:

  1. Fai clic con il tasto destro del mouse su questa pagina web e poi su Ispeziona.
  2. Nel riquadro di Chrome DevTools, fai clic su Console. Esegui tutto il codice di questo codelab nel riquadro Console.
  3. (Facoltativo) Puoi interagire manualmente con le scrivanie virtuali durante il codelab premendo F5 o []|| per accedere alla modalità Panoramica.

7a5398f02e46d103.png

3. Impostare le proprietà della finestra

L'API SetWindowProperties consente a una pagina web di impostare in modo programmatico le proprietà della sua finestra. Quando imposti la proprietà allDesks su un valore true, la finestra della scheda corrente viene bloccata su tutte le scrivanie.

Per impostare le proprietà della finestra:

  1. Nel riquadro Console, imposta la finestra in modo che venga visualizzata su tutte le scrivanie:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. Imposta la finestra in modo che venga visualizzata di nuovo su una singola scrivania:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. Blocca di nuovo la finestra su tutte le scrivanie per una dimostrazione più semplice:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

Se hai più di una scrivania virtuale sul tuo Chromebook, ora puoi vedere la finestra corrente su tutte le scrivanie.

4. Ottieni la scrivania attiva corrente

L'API GetActiveDesk consente a una pagina web di eseguire query in modo programmatico sulla scrivania attiva corrente.

  • Per ottenere la scrivania attiva corrente, recupera l'ID scrivania corrente e memorizza la proprietà deskUuid in una variabile baseDesk:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid; 
   }       
  }
);

5. Avviare una scrivania

L'API LaunchDesk consente a una pagina web di avviare in modo programmatico una scrivania vuota e di passare a questa.

Per lanciare una postazione, segui questi passaggi:

  1. Avvia una scrivania denominata test.
  2. Crea una variabile newDesk1 che memorizzi la proprietà deskUuid della scrivania.
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"           
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;   
    }  
   }
);

Viene visualizzata la scrivania appena lanciata. Se la finestra della console si trova in una finestra separata, la finestra della console si troverà sulla scrivania originale. Puoi passare alla scrivania originale premendo il tasto F5 o []||.

Puoi avere fino a otto scrivanie contemporaneamente. Se l'API restituisce un errore DesksCountCheckFailedError, devi rimuovere alcune scrivanie prima di lanciarne altre.

6. Rimuovere una scrivania

L'API RemoveDesk consente a una pagina web di rimuovere in modo programmatico una scrivania in base al relativo ID. Può chiudere tutte le finestre sulla scrivania.

Per semplicità, rimuovi la scrivania appena lanciata. Tuttavia, in pratica, la pagina web potrebbe rimuovere qualsiasi scrivania designata in base al relativo ID.

Per rimuovere una scrivania:

  1. Rimuovi la scrivania appena lanciata:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1                        
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. Nella finestra di dialogo che ti chiede di confermare o abbandonare la rimozione, conferma la rimozione della scrivania. Tutte le finestre sulla scrivania si chiudono.

La notifica di ChromeOS Chiudi tutte le finestre

  1. Se vuoi chiamare l'API per rimuovere la scrivania senza una finestra di conferma, utilizza il parametro skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. Passare a un'altra scrivania

L'API SwitchDesk consente a una pagina web di passare in modo programmatico a una scrivania assegnata.

Per semplicità, avvii una scrivania e passi a una precedente. Tuttavia, in pratica, la pagina web potrebbe passare a qualsiasi scrivania designata in base al relativo ID.

Per passare a un'altra scrivania:

  1. Avvia una scrivania:
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"          
        }
    },
    function(response) {
     console.log(response);
     if(response && response.operands) {
     newDesk1 = response.operands.deskUuid;
    }     
   }
);
  1. Passare alla scrivania precedente:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk                 
   }
  },
   function(response) {
       console.log(response); 
  }
);

8. Complimenti

Complimenti! Hai imparato a concedere alle pagine web l'accesso programmatico a ChromeOS Desk con l'estensione demo Desk Connector e Chrome DevTools.

Scopri di più