electron/docs-translations/es/tutorial/desktop-environment-integration.md
2016-10-11 22:37:32 -07:00

7 KiB

Integración con el entorno de escritorio

Los sistemas operativos proveen diferentes características para integrar aplicaciones en sus entornos de escritorio. Por ejemplo, en Windows, las aplicaciones pueden agregar accesos directos en la JumpList de la barra de tareas, y en Mac, las aplicaciones pueden agregar un menú personalizado en el dock.

Esta guía explica cómo integrar tu aplicación en esos entornos de escritorio a través de las APIs de Electron.

Documentos recientes (Windows y macOS)

Windows y macOS proveen un acceso sencillo a la lista de documentos recientes.

JumpList:

JumpList, Archivos recientes

Menú Dock:

Para agregar un archivo a la lista de documentos recientes, puedes utilizar: app.addRecentDocument API:

var app = require('app')
app.addRecentDocument('/Users/USERNAME/Desktop/work.type')

También puedes utilizar app.clearRecentDocuments para vaciar la lista de documentos recientes:

app.clearRecentDocuments()

Notas sobre Windows

Para activar esta característica en Windows, tu aplicación debe registrar un handler para el tipo de archivo que quieres utilizar, de lo contrario el archivo no aparecerá en la JumpList, aún después de agregarlo. Puedes encontrar más información sobre el proceso de registrar tu aplicación en Application Registration.

Cuando un usuario haga click en un archivo de la JumpList, una nueva instancia de tu aplicación se iniciará, la ruta del archivo se agregará como un argumento de la línea de comandos.

Notas sobre macOS

Cuando un archivo es solicitado desde el menú de documentos recientes, el evento open-file del módulo app será emitido.

Menú dock personalizado (macOS)

macOS permite a los desarrolladores definir un menú personalizado para el dock, el cual usualmente contiene algunos accesos directos a las características más comunes de tu aplicación:

Menú dock de Terminal.app:

Para establecer tu menú dock, puedes utilizar la API app.dock.setMenu, la cual sólo está disponible para macOS:

var app = require('app')
var Menu = require('menu')
var dockMenu = Menu.buildFromTemplate([
  {label: 'New Window', click: function () { console.log('New Window') }},
  {label: 'New Window with Settings',
    submenu: [
      {label: 'Basic'},
      {label: 'Pro'}
    ]
  },
  {label: 'New Command...'}
])
app.dock.setMenu(dockMenu)

Tareas de usuario (Windows)

En Windows puedes especificar acciones personalizadas en la categoría Tasks del JumpList, tal como menciona MSDN:

Las aplicaciones definen tareas basadas en las características del programa y las acciones clave que se esperan de un usuario. Las tareas deben ser libres de contexto, es decir, la aplicación no debe encontrarse en ejecución para que estas acciones funcionen. También deberían ser las acciones estadísticamente más comunes que un usuario normal realizaría en tu aplicación, como por ejemplo, redactar un mensaje de correo electrónico, crear un documento en el procesador de textos, ejecutar una aplicación en cierto modo, o ejecutar alguno de sus subcomandos. Una aplicación no debería popular el menú con características avanzadas que el usuario estándar no necesita ni con acciones que sólo se realizan una vez, como por ejemplo, el registro. No utilices las tareas para mostrar elementos promocionales como actualizaciones u ofertas especiales.

Es recomendable que la lista de tareas sea estática. Debe mantenerse a pesar de los cambios de estado de la aplicación. Aunque exista la posibilidad de variar el contenido de la lista dinámicamente, debes considerar que podría ser confuso para un usuario que no espera que el destino de la lista cambie.

Tareas de Internet Explorer:

IE

A diferencia del menú dock en macOS, el cual es un menú real, las tareas de usuario en Windows funcionan como accesos directos de aplicación, que al ser clickeados, lanzan el programa con argumentos específicos.

Para establecer las tareas de usuario en tu aplicación, puedes utilizar: app.setUserTasks API:

var app = require('app')
app.setUserTasks([
  {
    program: process.execPath,
    arguments: '--new-window',
    iconPath: process.execPath,
    iconIndex: 0,
    title: 'New Window',
    description: 'Create a new window'
  }
])

Para purgar la lista de tareas, puedes llamar a app.setUserTasks con un array vacío:

app.setUserTasks([])

Las tareas de usuario aún serán visibles después de cerrar tu aplicación, por lo cual el ícono y la ruta del programa deben existir hasta que la aplicación sea desinstalada.

Accesos directos en el lanzador Unity (Linux)

En Unity, es posible agregar algunas entradas personalizadas, modificando el archivo .desktop, ver Adding shortcuts to a launcher.

Accesos directos de Audacious:

audacious

Barra de progreso en la barra de tareas (Windows y Unity)

En Windows, un botón en la barra de tareas puede utilizarse para mostrar una barra de progreso. Esto permite que una ventana muestre la información de progreso al usuario, sin que el usuario tenga la ventana de la aplicación activa.

El entorno de escritorio Unity también posee una característica similar que permite mostrar una barra de progreso en el lanzador.

Barra de progreso en un botón de la barra de herramientas:

Taskbar Progress Bar

Barra de progreso en el lanzador Unity:

Unity Launcher

Para establecer la barra de progreso de una ventana, puedes utilizar BrowserWindow.setProgressBar API:

var window = new BrowserWindow()
window.setProgressBar(0.5)