Concedi alle pagine web l'accesso programmatico a ChromeOS Desk

1. Prima di iniziare

Desk Connector è 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 aprire una scrivania.
  • Come rimuovere una scrivania.
  • Come attivare una scrivania attiva
  • Come passare a un'altra scrivania

Che cosa ti serve

2. Configurazione

Per effettuare la configurazione, segui questi passaggi:

  1. Fai clic con il tasto destro del mouse su questa pagina web e fai clic su Ispeziona.
  2. Nel riquadro 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. Imposta le proprietà della finestra

L'API SetWindowProperties consente a una pagina web di impostare in modo programmatico le proprietà della finestra corrispondente. 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 su Chromebook, ora puoi vedere la finestra attuale su tutte le scrivanie.

4. Ottieni la scrivania attiva attuale

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 archivia 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. Apri una scrivania

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

Per aprire una scrivania, segui questi passaggi:

  1. Apri una scrivania denominata test.
  2. Crea una variabile newDesk1 per archiviare 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 aperta. Se la finestra della console si trova su una finestra separata, 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 avviarne 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 aperta. Tuttavia, in pratica, la pagina web potrebbe rimuovere qualsiasi scrivania designata in base al suo 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.

Notifica Chiudi tutte le finestre di ChromeOS

  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à, apri una scrivania e passa a una precedente. Tuttavia, in pratica, la pagina web potrebbe passare a qualsiasi scrivania designata in base al suo ID.

Per passare a un'altra scrivania:

  1. Apri 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 Connector Desk e Chrome DevTools.

Scopri di più