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
- Informazioni sulle scrivanie virtuali di ChromeOS
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
- Un Chromebook
- ChromeOS versione 113.* o successive. Se la versione non è ancora disponibile, passa al canale beta.
- Google Chrome
- L'estensione Demo Connector Desk
2. Configurazione
Per effettuare la configurazione, segui questi passaggi:
- Fai clic con il tasto destro del mouse su questa pagina web e fai clic su Ispeziona.
- Nel riquadro 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
F5
o[]||
per accedere alla modalità panoramica.
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:
- 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 un'unica 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 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 variabilebaseDesk
:
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:
- Apri una scrivania denominata
test
. - 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:
- 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à, 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:
- 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;
}
}
);
- 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.