Control de archivos en ChromeOS

El manejo de archivos te permite configurar ChromeOS para que la extensión pueda abrir archivos desde el menú Abrir del menú Archivo o el menú Abrir con del menú contextual. Una vez abierto, debes procesar los datos del archivo con la API de Launch Handler de la plataforma web. Luego, usarás las APIs de plataformas web estándar para mostrar o controlar el archivo.

Un controlador de archivos agregado al menú Abrir de ChromeOS.
Un controlador de archivos agregado al menú Abrir de ChromeOS.

Disponibilidad en las extensiones

ChromeOS 120 o versiones posteriores

Permisos

No se requieren permisos para el manejo de archivos.

Manifest

Debes agregar el array "file_handlers" al archivo manifest.json.

Contextos complementarios

Esta API se puede usar en service workers de extensión, ventanas emergentes, paneles laterales o secuencias de comandos de contenido.

Configura un controlador de archivos

Cada miembro de "file_handlers" (es decir, cada controlador de archivos) especifica uno o varios tipos de archivo que controlará una página de extensión específica.

Los controladores que especifiques se agregarán a la ventana Archivos de ChromeOS y al menú Abrir y Abrir, específicamente con los menús. Solo aparecerán en estos menús cuando el usuario seleccione un archivo con la extensión específica. Por ejemplo, si un controlador de archivos especifica .txt, los menús de ChromeOS solo mostrarán ese controlador cuando se seleccione un archivo con esa extensión.

Cómo procesar un archivo

El controlador de archivos es un archivo HTML contenido en tu extensión. Cuando el usuario selecciona tu controlador en un menú, el archivo HTML se abre en una pestaña nueva. El procesamiento del archivo, ya sea que lo muestres o lo uses de otra manera, se realiza con JavaScript usando las APIs de la plataforma web adecuadas. El código de procesamiento debe estar en un archivo JavaScript independiente, debe incluirse mediante una etiqueta <script> y también debe estar en tu extensión. El archivo de secuencia de comandos usa la interfaz LaunchQueue de la API de Launch Handler para obtener un objeto FileSystemFileHandle.

Ejemplo

En el siguiente ejemplo, se muestra cómo obtener un objeto FileSystemFileHandle con la interfaz LaunchQueue. Para ver la administración de archivos en acción, instala la demostración de gestión de archivos.

if ('launchQueue' in window) {
  launchQueue.setConsumer(async launchParams => {
    if (!launchParams.files || !launchParams.files.length) { return; }
    const fileHandle = launchParams.files[0];
  });
}
``````