Passer au contenu principal

Installable Apps

Ouvrir dans ChatGPT
24.21
Java API

L'annotation @AppProfile dans webforJ vous permet de rendre votre application installable sur les plateformes prises en charge.
Les applications web installables s'intègrent au système d'exploitation de l'appareil.
Lorsqu'elles sont installées, elles apparaissent sur l'écran d'accueil ou dans le menu des applications, de manière similaire aux applications natives.
Pour y parvenir, certaines métadonnées telles que le nom, la description et les icônes doivent être fournies.
Ces détails aident le système d'exploitation à identifier et à afficher l'application.

Exigence de provenance sécurisée

Pour qu'une application soit installable, elle doit être servie depuis une provenance sécurisée, comme https.
Les navigateurs rejettent les tentatives d'installation sur des provenances non sécurisées. Cependant, cette règle ne s'applique pas lors du service de l'application localement depuis localhost pendant le développement.

Pour plus de détails sur les contextes sécurisés et leur importance, reportez-vous à la documentation MDN sur les contextes sécurisés.

Support des navigateurs

Le support pour l'installation d'une application web varie en fonction du navigateur et de la plateforme.

Bureau

  • Navigateurs Chromium (Chrome, Edge, Opera, Brave, et autres) installent toute application qui fournit un fichier manifeste sur tous les systèmes d'exploitation de bureau pris en charge.
  • Safari prend en charge Fichier → Ajouter au Dock sur macOS Sonoma (Safari 17) et versions ultérieures. Le processus fonctionne pour toute application web, avec ou sans fichier manifeste.
  • Firefox ne prend pas en charge l'installation d'applications web à partir d'un fichier manifeste sur bureau.

Mobile

  • Sur Android, Chrome, Edge, Firefox, Opera et Internet Samsung prennent tous en charge l'installation d'applications web.
  • Sur iOS 16.3 et versions antérieures, les applications web ne peuvent être installées que depuis Safari (Partager → Ajouter à l'écran d'accueil).
  • Sur iOS 16.4 et versions ultérieures, les applications web peuvent être installées depuis le menu Partager dans Safari, Chrome, Edge, Firefox et Orion.

Annotation @AppProfile

L'annotation @AppProfile est appliquée à la classe principale de l'application et nécessite une configuration minimale. Au minimum, vous devez fournir :

  • name : Le nom complet de l'application.
  • shortName : Une version concise du nom à utiliser dans des contextes à espace limité.

Des propriétés optionnelles supplémentaires permettent de personnaliser l'apparence et le comportement de l'application.

Lorsque l'annotation @AppProfile est présente, webforJ :

  • Configure automatiquement les balises méta nécessaires.
  • Génère un Manifeste d'application Web.
  • Fournit des ressources connexes telles que des icônes et des captures d'écran.

Exemple : Application de @AppProfile

@AppProfile(
name = "Zyntric Bank",
shortName = "ZBank",
description = "Zyntric Bank est une application bancaire simple construite avec webforJ",
screenshots = {
@AppProfile.Screenshot(
src = "ws://img/screenshots/s1.jpg",
sizes = "1080x1920"
)
}
)
public class Application extends App {
}

Propriétés @AppProfile

Le tableau suivant répertorie toutes les propriétés prises en charge par l'annotation @AppProfile :

PropriétéTypeDescriptionValeur par défaut
nameStringLe nom complet de l'application, affiché dans les menus d'application et les dialogues d'installation.Obligatoire
shortNameStringUne version courte du nom, utilisée dans des contextes où l'espace est limité. Ne doit pas dépasser 12 caractères.Obligatoire
descriptionStringUne brève description de l'application, affichée lors de l'installation et dans les paramètres de l'application.""
themeColorStringLa couleur thème de l'application, appliquée à l'interface du navigateur lorsque l'application est lancée."#ffffff"
backgroundColorStringLa couleur de fond initiale de l'application pendant le chargement."#f8fafc"
startUrlStringL'URL à ouvrir lorsque l'application est lancée."."
displayDisplay EnumLe mode d'affichage de l'application (par exemple, FULLSCREEN, STANDALONE, BROWSER).STANDALONE
orientationOrientation EnumL'orientation par défaut de l'application (par exemple, PORTRAIT, LANDSCAPE, NATURAL).NATURAL
iconsIcon[]Un tableau d'icônes représentant l'application à différentes résolutions.[]
defaultIconDefaultIconSpécifie une icône par défaut pour l'application. Génère automatiquement des chemins d'icônes dans plusieurs tailles si configuré.icons://icon.png
screenshotsScreenshot[]Un tableau de captures d'écran pour l'application, utilisé dans les dialogues d'installation.[]
categoriesString[]Catégories pour classer l'application (par exemple, Finance, Shopping).[]

Propriétés @AppProfile.Icon

Les icônes définissent la représentation visuelle de votre application dans les menus et sur les écrans d'accueil. L'annotation @AppProfile.Icon prend en charge les propriétés suivantes :

PropriétéTypeDescriptionValeur par défaut
srcStringLe chemin vers l'icône. Cela peut être une URL absolue ou un chemin ws://.Obligatoire
sizesStringUne chaîne qui spécifie une ou plusieurs tailles de l'image au format LargeurxHauteur (par exemple, 512x512).Obligatoire
typeStringLe type média de l'icône (par exemple, image/png, image/jpeg). S'il n'est pas fourni, il sera détecté""
purposeStringLe but de l'icône (par exemple, any, maskable, monochrome).""

Exemple

@AppProfile.Icon(
src = "ws://icons/icon-512x512.png",
sizes = "512x512",
type = "image/png"
)

Propriétés @AppProfile.DefaultIcon

L'annotation DefaultIcon simplifie la configuration des icônes d'application en générant plusieurs variantes de taille à partir d'une icône de base.
Elle produit des icônes aux résolutions que les appareils demandent couramment.

PropriétéTypeDescriptionValeur par défaut
valueStringLe chemin vers le fichier d'icône de base. Cela peut être une URL absolue ou un chemin ws://.Obligatoire
sizesint[]Un tableau de tailles à générer, spécifié sous forme d'entiers (par exemple, {144, 192, 512}).{144, 192, 512}
Exigences des fichiers d'icônes

Cette configuration ne génère pas automatiquement les fichiers d'icônes réels pour l'application. Au lieu de cela, elle utilise l'annotation @AppProfile.DefaultIcon pour générer des entrées @AppProfile.Icon correspondantes pour chaque taille spécifiée.

Si vous utilisez le protocole du serveur web

  • Vous devez fournir un fichier d'icône de base icon.png dans le dossier static/icons.
  • Vous devez inclure des variations d'icônes supplémentaires nommées icon-144x144.png, icon-192x192.png, et icon-512x512.png.
  • Ces tailles spécifiques couvrent les résolutions que les appareils demandent couramment.

Si vous utilisez le protocole des icônes

  • Vous devez fournir un fichier d'icône de base icon.png dans le dossier /icons.
  • Le point de terminaison icons fournit dynamiquement différentes tailles d'icônes à la demande lorsqu'elles sont demandées.

Propriétés @AppProfile.Screenshot

Les captures d'écran fournissent un aperçu de l'application dans les dialogues d'installation ou les magasins d'applications. L'annotation @AppProfile.Screenshot prend en charge les propriétés suivantes :

PropriétéTypeDescriptionValeur par défaut
srcStringLe chemin vers la capture d'écran. Cela peut être une URL absolue ou un chemin ws://.Obligatoire
sizesStringUne chaîne qui spécifie une ou plusieurs tailles de l'image au format LargeurxHauteur (par exemple, 1080x1920).Obligatoire
typeStringLe type média de la capture d'écran (par exemple, image/png, image/jpeg). S'il n'est pas fourni, il sera détecté""
labelStringUne étiquette descriptive pour la capture d'écran.""
formFactorStringLe facteur de forme de la capture d'écran (par exemple, narrow, wide).""
platformStringLa plateforme pour laquelle la capture d'écran est destinée (par exemple, ios, android).""

Exemple

@AppProfile.Screenshot(
src = "ws://img/screenshots/s1.jpg",
sizes = "1080x1920"
)