Installable Apps
La anotación @AppProfile
en webforJ te permite hacer que tu aplicación sea instalable en plataformas compatibles.
Las aplicaciones web instalables se integran sin problemas con el sistema operativo del dispositivo.
Cuando están instaladas, aparecen en la pantalla de inicio o en el menú de aplicaciones, similar a las aplicaciones nativas.
Para lograr esto, se debe proporcionar cierta metadata como nombre, descripción e íconos.
Estos detalles ayudan al sistema operativo a identificar y mostrar la aplicación.
Para que una aplicación sea instalable, debe ser servida desde un origen seguro, como https
.
Este requisito asegura que la aplicación cumpla con los estándares de seguridad necesarios para la instalación. Sin embargo, esta regla no se aplica al servir la aplicación localmente desde localhost
durante el desarrollo.
Para más detalles sobre contextos seguros y su importancia, consulta la documentación de Contextos Seguros de MDN.
Anotación @AppProfile
La anotación @AppProfile
se aplica a la clase principal de la aplicación y requiere una configuración mínima. Como mínimo, necesitas proporcionar:
- name: El nombre completo de la aplicación.
- shortName: Una versión concisa del nombre para usar en contextos de espacio limitado.
Las propiedades adicionales opcionales permiten personalizar la apariencia y el comportamiento de la aplicación.
Cuando la anotación @AppProfile
está presente, webforJ:
- Configura automáticamente las etiquetas meta necesarias.
- Genera un Manifiesto de Aplicación Web.
- Sirve recursos relacionados como íconos y capturas de pantalla.
Ejemplo: Aplicando @AppProfile
@AppProfile(
name = "Zyntric Bank",
shortName = "ZBank",
description = "Zyntric Bank es una aplicación bancaria simple construida con webforJ",
screenshots = {
@AppProfile.Screenshot(
src = "ws://img/screenshots/s1.jpg",
sizes = "1080x1920"
)
}
)
public class Application extends App {
}
Propiedades de @AppProfile
La siguiente tabla enumera todas las propiedades soportadas por la anotación @AppProfile
:
Propiedad | Tipo | Descripción | Valor Por Defecto |
---|---|---|---|
name | String | El nombre completo de la aplicación, mostrado en menús de aplicaciones y cuadros de diálogo de instalación. | Obligatorio |
shortName | String | Una versión corta del nombre, utilizada en contextos con espacio limitado. No debe exceder 12 caracteres. | Obligatorio |
description | String | Una breve descripción de la aplicación, mostrada durante la instalación y en la configuración de la aplicación. | "" |
themeColor | String | El color del tema para la aplicación, aplicado a la interfaz del navegador cuando se lanza la aplicación. | "#ffffff" |
backgroundColor | String | El color de fondo inicial para la aplicación durante la carga. | "#f8fafc" |
startUrl | String | La URL que se abrirá cuando se lance la aplicación. | "." |
display | Display Enum | El modo de visualización de la aplicación (p. ej., FULLSCREEN , STANDALONE , BROWSER ). | STANDALONE |
orientation | Orientation Enum | La orientación predeterminada de la aplicación (p. ej., PORTRAIT , LANDSCAPE , NATURAL ). | NATURAL |
icons | Icon[] | Un array de íconos que representan la aplicación en diferentes resoluciones. | [] |
defaultIcon | DefaultIcon | Especifica un ícono predeterminado para la aplicación. Genera automáticamente rutas de íconos en múltiples tamaños si está configurado. | icons://icon.png |
screenshots | Screenshot[] | Un array de capturas de pantalla para la aplicación, utilizadas en cuadros de diálogo de instalación. | [] |
categories | String[] | Categorías para clasificar la aplicación (p. ej., Finanzas , Compras ). | [] |
Propiedades de @AppProfile.Icon
Los íconos definen la representación visual de tu aplicación en los menús y pantallas de inicio. La anotación @AppProfile.Icon
soporta las siguientes propiedades:
Propiedad | Tipo | Descripción | Valor Por Defecto |
---|---|---|---|
src | String | La ruta al ícono. Esto puede ser una URL absoluta, o una ruta ws:// . | Obligatorio |
sizes | String | Una cadena que especifica uno o más tamaños de la imagen en el formato AnchoxAlto (p. ej., 512x512 ). | Obligatorio |
type | String | El tipo MIME del ícono (p. ej., image/png , image/jpeg ). Si no se proporciona, se detectará. | "" |
purpose | String | El propósito del ícono (p. ej., any , maskable , monochrome ). | "" |
Ejemplo
@AppProfile.Icon(
src = "ws://icons/icon-512x512.png",
sizes = "512x512",
type = "image/png"
)
Propiedades de @AppProfile.DefaultIcon
La anotación DefaultIcon
simplifica la configuración de los íconos de la aplicación generando múltiples variantes de tamaño a partir de un ícono base.
Esto es particularmente útil para asegurar la compatibilidad en dispositivos con distintas resoluciones.
Propiedad | Tipo | Descripción | Valor Por Defecto |
---|---|---|---|
value | String | La ruta al archivo del ícono base. Esto puede ser una URL absoluta, o una ruta ws:// . | Obligatorio |
sizes | int[] | Un array de tamaños a generar, especificados como enteros (p. ej., {144, 192, 512} ). | {144, 192, 512} |
Esta configuración no genera automáticamente los archivos de ícono reales para la aplicación. En su lugar, utiliza la anotación @AppProfile.DefaultIcon
para generar las entradas correspondientes de @AppProfile.Icon
para cada tamaño especificado.
Si usas el protocolo de servidor web
- Debes proporcionar un archivo base
icon.png
en la carpetastatic/icons
. - Se espera que incluya variaciones adicionales de íconos nombradas
icon-144x144.png
,icon-192x192.png
, yicon-512x512.png
. - Estos tamaños específicos aseguran la compatibilidad con varios dispositivos y resoluciones.
Si usas el protocolo de íconos
- Se espera que proporciones un archivo base
icon.png
en la carpeta/icons
. - El endpoint
icons
proporciona dinámicamente diferentes tamaños de íconos bajo demanda cuando se solicitan.
Propiedades de @AppProfile.Screenshot
Las capturas de pantalla proporcionan una vista previa de la aplicación en cuadros de diálogo de instalación o tiendas de aplicaciones. La anotación @AppProfile.Screenshot
soporta las siguientes propiedades:
Propiedad | Tipo | Descripción | Valor Por Defecto |
---|---|---|---|
src | String | La ruta a la captura de pantalla. Esto puede ser una URL absoluta, o una ruta ws:// . | Obligatorio |
sizes | String | Una cadena que especifica uno o más tamaños de la imagen en el formato AnchoxAlto (p. ej., 1080x1920 ). | Obligatorio |
type | String | El tipo MIME de la captura de pantalla (p. ej., image/png , image/jpeg ). Si no se proporciona, se detectará | "" |
label | String | Una etiqueta descriptiva para la captura de pantalla. | "" |
formFactor | String | El factor de forma de la captura de pantalla (p. ej., narrow , wide ). | "" |
platform | String | La plataforma para la cual se destina la captura de pantalla (p. ej., ios , android ). | "" |
Ejemplo
@AppProfile.Screenshot(
src = "ws://img/screenshots/s1.jpg",
sizes = "1080x1920"
)