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
- Comprensione delle scrivanie virtuali di ChromeOS
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
- Un Chromebook
- ChromeOS versione 113.* o successive. Se la versione non è ancora disponibile, passa al canale beta.
- Google Chrome
- L'estensione demo Desk Connector
2. Configurazione
Per la configurazione:
- Fai clic con il tasto destro del mouse su questa pagina web e poi su Ispeziona.
- Nel riquadro di Chrome DevTools, fai clic su Console. Esegui tutto il codice di questo codelab nel riquadro Console.
- (Facoltativo) Puoi interagire manualmente con le scrivanie virtuali durante il codelab premendo
F5o[]||per accedere alla modalità Panoramica.

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:
- 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);
}
);
- 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);
}
);
- 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à
deskUuidin una variabilebaseDesk:
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:
- Avvia una scrivania denominata
test. - Crea una variabile
newDesk1che memorizzi la proprietàdeskUuiddella 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:
- Rimuovi la scrivania appena lanciata:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
"messageType": "RemoveDesk",
"operands": {
"deskId": newDesk1
}
},
function(response) {
console.log(response);
}
);
- 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.

- 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:
- 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;
}
}
);
- 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.