Webseiten programmatischen Zugriff auf ChromeOS Desk gewähren

1. Hinweis

Desk Connector ist eine ChromeOS-Funktion, mit der Webseiten programmatisch auf virtuelle ChromeOS-Desktops zugreifen können. In diesem Codelab erfahren Sie, wie Sie den Desk Connector mit den Chrome-Entwicklertools verwenden.

Voraussetzungen

Aufgaben in diesem Lab

  • Fenstereigenschaften festlegen
  • So richten Sie einen Desktop ein.
  • Desktop entfernen
  • So erhalten Sie einen aktiven Desktop.
  • Zu einem anderen Desktop wechseln

Voraussetzungen

2. Einrichten

Gehen Sie zur Einrichtung folgendermaßen vor:

  1. Klicken Sie mit der rechten Maustaste auf die Webseite und dann auf Untersuchen.
  2. Klicken Sie in den Chrome-Entwicklertools auf Console. Den gesamten Code in diesem Codelab führen Sie im Steuerfeld Console aus.
  3. (Optional) Sie können während des Codelabs manuell mit den virtuellen Desktops interagieren. Drücken Sie dazu F5 oder []||, um in den Übersichtsmodus zu wechseln.

7a5398f02e46d103.png

3. Fenstereigenschaften festlegen

Mit der SetWindowProperties API können Webseiten programmatisch Eigenschaften ihres Fensters festlegen. Wenn Sie die Eigenschaft allDesks auf einen true-Wert setzen, wird das Fenster des aktuellen Tabs an alle Desktops angepinnt.

So legen Sie Fenstereigenschaften fest:

  1. Legen Sie im Bereich Console (Konsole) fest, dass das Fenster auf allen Desktops angezeigt werden soll:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. Legen Sie fest, dass das Fenster wieder auf einem einzelnen Desktop angezeigt werden soll:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. Für eine einfachere Demonstration können Sie das Fenster wieder an alle Desktops anpinnen:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

Wenn Sie auf Ihrem Chromebook mehrere virtuelle Desktops haben, können Sie das aktuelle Fenster jetzt auf allen Desktops sehen.

4. Aktuell aktiven Desktop abrufen

Mit der GetActiveDesk API kann eine Webseite den aktuell aktiven Desktop programmatisch abfragen.

  • Wenn Sie den aktuell aktiven Desktop abrufen möchten, rufen Sie die aktuelle Desktop-ID ab und speichern Sie das Attribut deskUuid in der Variablen baseDesk:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid; 
   }       
  }
);

5. Desktop starten

Mit der LaunchDesk API kann eine Webseite programmatisch einen leeren Desktop starten und zu diesem wechseln.

So starten Sie einen Desktop:

  1. Starten Sie einen Desktop mit dem Namen test.
  2. Erstellen Sie eine newDesk1-Variable, in der das Attribut deskUuid des Desktops gespeichert wird.
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"           
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;   
    }  
   }
);

Sie werden zum neu eingeführten Desktop weitergeleitet. Wenn sich Ihr Konsolenfenster in einem eigenen Fenster befindet, befindet sich das Konsolenfenster auf dem ursprünglichen Desktop. Du kannst zum ursprünglichen Desktop wechseln, indem du die F5- oder []||-Taste drückst.

Sie können bis zu acht Desktops gleichzeitig einrichten. Wenn die API den Fehler DesksCountCheckFailedError zurückgibt, müssen Sie einige Desktops entfernen, bevor Sie neue starten.

6. Desktop entfernen

Mit der RemoveDesk API kann eine Webseite einen Desktop anhand seiner Desktop-ID programmatisch entfernen. Damit lassen sich alle Fenster auf dem Schreibtisch schließen.

Der Einfachheit halber entfernen Sie den neu gestarteten Desktop. In der Praxis könnte die Webseite jedoch jeden zugewiesenen Desktop anhand seiner Desktop-ID entfernen.

So entfernen Sie einen Desktop:

  1. Entfernen Sie den neu gestarteten Desktop:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1                        
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. Bestätigen Sie in dem Dialogfeld, in dem Sie aufgefordert werden, das Entfernen des Desktops zu bestätigen oder abzubrechen. Alle Fenster auf dem Desktop werden geschlossen.

Die ChromeOS-Benachrichtigung „Alle Fenster schließen“

  1. Wenn Sie die API aufrufen möchten, um den Desktop ohne Bestätigungsfenster zu entfernen, verwenden Sie den Parameter skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. Zu einem anderen Desktop wechseln

Mit der SwitchDesk API kann eine Webseite programmatisch zu einem festgelegten Desktop wechseln.

Der Einfachheit halber starten Sie einen Desktop und wechseln dann zu einem vorherigen Desktop. In der Praxis könnte die Webseite jedoch anhand ihrer Desktop-ID zu einem bestimmten Desktop wechseln.

So wechseln Sie zu einem anderen Desktop:

  1. Desktop starten:
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. Zum vorherigen Desktop wechseln:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk                 
   }
  },
   function(response) {
       console.log(response); 
  }
);

8. Glückwunsch

Glückwunsch! Sie haben gelernt, wie Sie Webseiten mit der Desk Connector Demo-Erweiterung und den Chrome-Entwicklertools programmatischen Zugriff auf ChromeOS Desk gewähren.

Weitere Informationen