Cómo brindar a las páginas web acceso programático a ChromeOS Desk

1. Antes de comenzar

El conector de escritorio es una función de ChromeOS que permite que las páginas web accedan mediante programación a los escritorios virtuales de ChromeOS. En este codelab, aprenderás a usar el conector de escritorio con las Herramientas para desarrolladores de Chrome.

Requisitos previos

Qué aprenderás

  • Cómo configurar las propiedades de la ventana
  • Cómo iniciar un escritorio
  • Cómo quitar un escritorio
  • Cómo obtener un escritorio activo.
  • Cómo cambiar a otro escritorio

Requisitos

2. Prepárate

Sigue estos pasos para configurarlo:

  1. Haz clic con el botón derecho en esta página web y, luego, en Inspeccionar.
  2. En el panel de Herramientas para desarrolladores de Chrome, haz clic en Consola. Debes ejecutar todo el código de este codelab en el panel de Console.
  3. Opcional: Puedes interactuar con los escritorios virtuales de forma manual durante todo el codelab presionando F3 o []|| para ingresar al modo de descripción general.

7a5398f02e46d103.png

3. Configura las propiedades de la ventana

La API de SetWindowProperties permite que una página web establezca propiedades de su ventana de manera programática. Cuando estableces la propiedad allDesks en un valor true, se fija la ventana de la pestaña actual a todos los escritorios.

Para configurar las propiedades de las ventanas, sigue estos pasos:

  1. En el panel Consola, configura la ventana para que aparezca en todos los escritorios:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
      console.log(response);
  }
);
  1. Vuelve a configurar la ventana para que aparezca en un solo escritorio:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond",{
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": false
    }
   },
  function(response) {
     console.log(response);
  }
);
  1. Vuelve a fijar la ventana a todos los escritorios para una demostración más sencilla:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SetWindowProperties",
    "operands": {
        "allDesks": true
    }
   },
  function(response) {
     console.log(response);
  }
);

Si tienes más de un escritorio virtual en la Chromebook, ahora puedes ver la ventana actual en todos los escritorios.

4. Obtener el escritorio activo actual

La API de GetActiveDesk permite que una página web consulte de manera programática el escritorio activo actual.

  • Para obtener el escritorio activo actual, recupera el ID del escritorio actual y almacena la propiedad deskUuid en una variable baseDesk:
let baseDesk;
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "GetActiveDesk",
    },
   function(response) {
    console.log(response);
    if(response && response.operands) {
    baseDesk = response.operands.deskUuid;
   }
  }
);

5. Cómo iniciar un escritorio

La API de LaunchDesk permite que una página web inicie de manera programática un escritorio vacío y cambie a él.

Para iniciar un escritorio, sigue estos pasos:

  1. Inicia un escritorio llamado test.
  2. Crea una variable newDesk1 que almacene la propiedad deskUuid del escritorio.
let newDesk1;
chrome.runtime.sendMessage(
    "oagemgapjncacjdaockjfaidedggjond", {
        "messageType": "LaunchDesk",
        "operands": {
            "deskName": "test"
        }
    },
    function(response) {
     console.log(response);
     if(response&&response.operands) {
     newDesk1 = response.operands.deskUuid;
    }
   }
);

Se te redireccionará al escritorio lanzado recientemente. Puedes tener hasta ocho escritorios al mismo tiempo. Si la API muestra un error DesksCountCheckFailedError, debes quitar algunos escritorios antes de iniciar más.

6. Cómo quitar un escritorio

La API de RemoveDesk permite que una página web quite de manera programática un escritorio por su ID. Puede cerrar todas las ventanas del escritorio.

Para simplificar, quita el escritorio recién lanzado. Sin embargo, en la práctica, la página web puede quitar cualquier escritorio designado por su ID.

Para quitar un escritorio, sigue estos pasos:

  1. Quita el escritorio que se acaba de iniciar:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1
    }
  },
  function(response) {
     console.log(response);
  }
);
  1. En el cuadro de diálogo en el que se te solicita que confirmes o abandones la eliminación, confirma que se quitó el escritorio. Se cierran todas las ventanas del escritorio.

Notificación para cerrar todas las ventanas de ChromeOS

  1. Si deseas llamar a la API para quitar el escritorio sin una ventana de confirmación, usa el parámetro skipConfirmation:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "RemoveDesk",
    "operands": {
        "deskId": newDesk1,
        "skipConfirmation":true
   }
  },
  function(response) {
     console.log(response);
  }
);

7. Cambiar a otro escritorio

La API de SwitchDesk permite que una página web cambie de manera programática a un escritorio designado.

Para simplificar, debe iniciar un escritorio y cambiar a uno anterior. Sin embargo, en la práctica, la página web podría cambiar a cualquier escritorio designado por su ID de escritorio.

Para cambiar a otro escritorio, sigue estos pasos:

  1. Inicie un escritorio:
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. Cambiar al escritorio anterior:
chrome.runtime.sendMessage("oagemgapjncacjdaockjfaidedggjond", {
    "messageType": "SwitchDesk",
    "operands": {
        "deskId": baseDesk
   }
  },
   function(response) {
       console.log(response);
  }
);

8. Felicitaciones

Felicitaciones Aprendió a otorgar acceso programático a las páginas web a Chrome OS Desk con la extensión de demostración del conector de escritorio y las Herramientas para desarrolladores de Chrome.

Más información