Przyznaj stronom internetowym automatyczny dostęp do ChromeOS Desk

1. Zanim zaczniesz

Desk Connector to funkcja ChromeOS, która umożliwia stronom internetowym programowy dostęp do wirtualnych biurek w ChromeOS. Z tego ćwiczenia w programie dowiesz się, jak używać oprogramowania Desk Connector z Narzędziach deweloperskich w Chrome.

Wymagania wstępne

Czego się nauczysz

  • Jak ustawić właściwości okna.
  • Jak uruchomić biurko.
  • Jak usunąć biurko.
  • Jak kupić aktywne biurko.
  • Jak przełączyć się na inne biurko.

Czego potrzebujesz

2. Konfiguracja

Aby to zrobić:

  1. Kliknij tę stronę prawym przyciskiem myszy i wybierz Zbadaj.
  2. W panelu Narzędzi deweloperskich w Chrome kliknij Konsola. Cały kod z tego ćwiczenia z programowania uruchamiasz w panelu Konsola.
  3. (Opcjonalnie) W trakcie ćwiczeń z programowania możesz korzystać z wirtualnych biurek ręcznie. W tym celu naciśnij F5 lub []||, aby włączyć tryb przeglądu.

7a5398f02e46d103.png

3. Ustawianie właściwości okna

Interfejs API SetWindowProperties umożliwia stronie internetowej automatyczne ustawianie właściwości okna. Ustawienie właściwości allDesks na wartość true powoduje przypięcie okna bieżącej karty do wszystkich biurek.

Aby ustawić właściwości okna, wykonaj te czynności:

  1. W panelu Konsola skonfiguruj okno tak, aby było widoczne na wszystkich biurkach:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. Ustaw ponownie okno tak, aby było widoczne na jednym biurku:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. Przypnij okno jeszcze raz do wszystkich biurek, aby łatwiej to zademonstrować:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

Jeśli masz na Chromebooku więcej niż jedno wirtualne biurko, teraz możesz zobaczyć bieżące okno na wszystkich biurkach.

4. Pobierz bieżące aktywne biurko

Interfejs API GetActiveDesk umożliwia stronie internetowej automatyczne wysyłanie zapytań do bieżącego aktywnego biurka.

  • Aby pobrać bieżące aktywne biurko, pobierz jego identyfikator i zapisz właściwość deskUuid w zmiennej baseDesk:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid; 
   }       
  }
);

5. Uruchamianie biurka

Interfejs API LaunchDesk umożliwia stronie internetowej automatyczne uruchomienie pustego biurka i przełączenie się na nie.

Aby uruchomić biurko, wykonaj te czynności:

  1. Uruchom biurko o nazwie test.
  2. Utwórz zmienną newDesk1, która przechowuje właściwość deskUuid biurka.
let newDesk1;                   
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"           
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;   
    }  
   }
);

Przejdziesz do nowo uruchomionego biurka. Jeśli okno konsoli jest w osobnym oknie, będzie ono widoczne na oryginalnym biurku. Możesz przełączyć się na oryginalne biurko, naciskając klawisz F5 lub []||.

Jednocześnie możesz mieć maksymalnie osiem biurek. Jeśli interfejs API zwróci błąd DesksCountCheckFailedError, musisz usunąć niektóre biurka, zanim uruchomisz kolejne.

6. Usuwanie biurka

Interfejs API RemoveDesk umożliwia stronie internetowej automatyczne usuwanie biurka według identyfikatora biurka. Może zamknąć wszystkie okna na biurku.

Dla uproszczenia usuń nowo uruchomione biurko. Jednak w praktyce na stronie internetowej można usunąć dowolne wyznaczone biurko na podstawie identyfikatora biurka.

Aby usunąć biurko, wykonaj te czynności:

  1. Usuń nowo uruchomione biurko:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1                        
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. W oknie, w którym pojawi się prośba o potwierdzenie lub rezygnację z usunięcia, potwierdź usunięcie biurka. Wszystkie okna na biurku zamykają się.

Powiadomienie o zamknięciu wszystkich okien w ChromeOS

  1. Jeśli chcesz wywołać interfejs API i usunąć biurko bez okna potwierdzenia, użyj parametru skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. Przełącz się na inne biurko

Interfejs API SwitchDesk umożliwia stronie internetowej automatyczne przełączanie się na wyznaczone biurko.

Dla uproszczenia możesz włączyć biurko i przełączyć się na poprzednie biurko. Jednak w praktyce strona internetowa może przełączać się na dowolne wyznaczone biurko według identyfikatora biurka.

Aby przełączyć się na inne biurko, wykonaj te czynności:

  1. Uruchamianie biurka:
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. Przełącz się na poprzednie biurko:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk                 
   }
  },
   function(response) {
       console.log(response); 
  }
);

8. Gratulacje

Gratulacje! Wiesz już, jak przyznawać stronom internetowym programowy dostęp do ChromeOS Desk za pomocą rozszerzenia Desk Connector w wersji demonstracyjnej i Narzędzi deweloperskich w Chrome.

Więcej informacji