웹페이지에 ChromeOS Desk에 프로그래매틱 액세스 권한 부여

1. 시작하기 전에

Desk Connector는 웹페이지에서 ChromeOS 가상 데스크에 프로그래매틱 방식으로 액세스할 수 있는 ChromeOS 기능입니다. 이 Codelab에서는 Chrome DevTools로 Desk 커넥터를 사용하는 방법을 알아봅니다.

기본 요건

학습할 내용

  • 창 속성을 설정하는 방법
  • 데스크를 실행하는 방법
  • 데스크를 삭제하는 방법
  • 활성 데스크를 사용하는 방법
  • 다른 데스크로 전환하는 방법

필요한 항목

2. 설정

시작하려면 다음 단계를 수행합니다.

  1. 이 웹페이지를 마우스 오른쪽 버튼으로 클릭하고 검사를 클릭합니다.
  2. Chrome DevTools 패널에서 콘솔을 클릭합니다. Console 패널에서 이 Codelab의 모든 코드를 실행합니다.
  3. (선택사항) Codelab 전체에서 F3 또는 []||를 눌러 개요 모드로 전환하여 가상 데스크와 수동으로 상호작용할 수 있습니다.

7a5398f02e46d103.png

3. 창 속성 설정

SetWindowProperties API를 사용하면 웹페이지에서 창의 속성을 프로그래매틱 방식으로 설정할 수 있습니다. allDesks 속성을 true 값으로 설정하면 현재 탭의 창이 모든 데스크에 고정됩니다.

창 속성을 설정하려면 다음 단계를 따르세요.

  1. 콘솔 패널에서 창이 모든 데스크에 표시되도록 설정합니다.
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. 창이 단일 데스크에 다시 표시되도록 설정합니다.
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. 더 쉽게 설명하기 위해 창을 모든 데스크에 다시 고정합니다.
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

Chromebook에 가상 데스크가 두 개 이상 있는 경우 모든 데스크에서 현재 창이 표시됩니다.

4. 현재 활성 데스크 가져오기

GetActiveDesk API를 사용하면 웹페이지에서 현재 활성 데스크를 프로그래매틱 방식으로 쿼리할 수 있습니다.

  • 현재 활성 데스크를 가져오려면 현재 데스크 ID를 검색하고 deskUuid 속성을 baseDesk 변수에 저장합니다.
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid;
   }
  }
);

5. 데스크 실행

LaunchDesk API를 사용하면 웹페이지에서 프로그래매틱 방식으로 빈 데스크를 실행하고 전환할 수 있습니다.

데스크를 실행하려면 다음 단계를 따르세요.

  1. 이름이 test인 데스크를 실행합니다.
  2. 데스크의 deskUuid 속성을 저장하는 newDesk1 변수를 만듭니다.
let newDesk1;
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;
    }
   }
);

그러면 새로 출시된 데스크가 표시됩니다. 동시에 최대 8개의 데스크를 사용할 수 있습니다. API에서 DesksCountCheckFailedError 오류를 반환하는 경우 일부 데스크를 삭제해야 더 많이 실행할 수 있습니다.

6. 데스크 삭제하기

RemoveDesk API를 사용하면 웹페이지에서 데스크 ID로 프로그래매틱 방식으로 데스크를 삭제할 수 있습니다. 데스크의 모든 창을 닫을 수 있습니다.

편의상 새로 출시된 데스크는 삭제합니다. 하지만 실제로 웹페이지에서 데스크 ID로 지정된 데스크를 삭제할 수 있습니다.

데스크를 삭제하려면 다음 단계를 따르세요.

  1. 새로 시작된 데스크를 삭제합니다.
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. 삭제 확인 또는 폐기를 요청하는 대화상자에서 데스크 삭제를 확인합니다. 데스크의 모든 창이 닫힙니다.

ChromeOS 모든 창 닫기 알림

  1. 확인 창 없이 API를 호출하여 데스크를 삭제하려면 skipConfirmation 매개변수를 사용합니다.
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. 다른 데스크로 전환

SwitchDesk API를 사용하면 웹페이지를 지정된 데스크로 프로그래매틱 방식으로 전환할 수 있습니다.

편의상 데스크를 실행하고 이전 데스크로 전환합니다. 하지만 실제로는 웹페이지가 데스크 ID로 지정된 데스크로 전환될 수 있습니다.

다른 데스크로 전환하려면 다음 단계를 따르세요.

  1. 데스크 실행:
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. 이전 데스크로 전환:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk
   }
  },
   function(response) {
       console.log(response);
  }
);

8. 축하합니다

축하합니다. 데스크 커넥터 데모 확장 프로그램 및 Chrome DevTools를 사용하여 웹페이지에 ChromeOS Desk에 프로그래매틱 액세스 권한을 부여하는 방법을 알아봤습니다.

자세히 알아보기