Overslaan naar hoofdinhoud

Installable Apps

Openen in ChatGPT
24.21
Java API

De @AppProfile annotatie in webforJ stelt je in staat om je app installeerbaar te maken op ondersteunde platforms. Installeerbare webapps integreren met het besturingssysteem van het apparaat. Wanneer geïnstalleerd, verschijnen ze op het startscherm of in het app-menu, vergelijkbaar met native apps. Om dit te bereiken, moeten bepaalde metadata zoals naam, beschrijving en iconen worden verstrekt. Deze details helpen het besturingssysteem om de app te identificeren en weer te geven.

Vereiste Beveiligde Oorsprong

Om een app installeerbaar te maken, moet deze worden aangeboden vanuit een beveiligde oorsprong, zoals https. Browsers wijzen installatiepogingen op onveilige oorsprongen af. Deze regel is echter niet van toepassing wanneer de app lokaal vanaf localhost tijdens de ontwikkeling wordt aangeboden.

Voor meer details over veilige contexten en hun belang, zie de Secure Contexts MDN documentatie.

Browserondersteuning

Ondersteuning voor het installeren van een webapp varieert per browser en per platform.

Desktop

  • Chromium-browsers (Chrome, Edge, Opera, Brave en anderen) installeren elke app die een manifestbestand levert op alle ondersteunde desktopbesturingssystemen.
  • Safari ondersteunt Bestand → Voeg toe aan Dock op macOS Sonoma (Safari 17) en later. De flow werkt voor elke webapp, met of zonder manifestbestand.
  • Firefox ondersteunt het installeren van webapps vanuit een manifestbestand op desktop niet.

Mobiel

  • Op Android ondersteunen Chrome, Edge, Firefox, Opera en Samsung Internet allemaal het installeren van webapps.
  • Op iOS 16.3 en eerder kunnen webapps alleen vanuit Safari worden geïnstalleerd (Delen → Voeg toe aan startscherm).
  • Op iOS 16.4 en later kunnen webapps worden geïnstalleerd vanuit het Deelnemen-menu in Safari, Chrome, Edge, Firefox en Orion.

@AppProfile annotatie

De @AppProfile annotatie wordt toegepast op de hoofdapp-klasse en vereist minimale configuratie. Ten minste moet je het volgende opgeven:

  • name: De volledige naam van de app.
  • shortName: Een beknopte versie van de naam voor gebruik in contexten met beperkte ruimte.

Extra optionele eigenschappen stellen je in staat om het uiterlijk en gedrag van de app aan te passen.

Wanneer de @AppProfile annotatie aanwezig is, zorgt webforJ voor:

  • Automatisch opzetten van de noodzakelijke meta-tags.
  • Genereert een Web Application Manifest.
  • Dien gerelateerde middelen zoals iconen en screenshots.

Voorbeeld: Toepassen van @AppProfile

@AppProfile(
name = "Zyntric Bank",
shortName = "ZBank",
description = "Zyntric Bank is een eenvoudige banktoepassing gebouwd met webforJ",
screenshots = {
@AppProfile.Screenshot(
src = "ws://img/screenshots/s1.jpg",
sizes = "1080x1920"
)
}
)
public class Application extends App {
}

@AppProfile eigenschappen

De volgende tabel geeft alle eigenschappen weer die door de @AppProfile annotatie worden ondersteund:

EigenschapTypeBeschrijvingStandaardwaarde
nameStringDe volledige naam van de app, weergegeven in app-menu's en installatie-dialogen.Verplicht
shortNameStringEen korte versie van de naam, gebruikt in contexten met beperkte ruimte. Mag niet meer dan 12 tekens bevatten.Verplicht
descriptionStringEen beknopte beschrijving van de app, weergegeven tijdens de installatie en in app-instellingen.""
themeColorStringDe themakleur voor de app, toegepast op de browserinterface wanneer de app wordt gestart."#ffffff"
backgroundColorStringDe initiële achtergrondkleur voor de app tijdens het laden."#f8fafc"
startUrlStringDe URL die geopend moet worden wanneer de app wordt gestart."."
displayDisplay EnumDe weergavemodus van de app (bijv. FULLSCREEN, STANDALONE, BROWSER).STANDALONE
orientationOrientation EnumDe standaardoriëntatie van de app (bijv. PORTRAIT, LANDSCAPE, NATURAL).NATURAL
iconsIcon[]Een array van iconen die de app op verschillende resoluties vertegenwoordigen.[]
defaultIconDefaultIconGeeft een standaardicoon voor de app op. Genereert automatisch pad naar iconen in meerdere formaten als dat is geconfigureerd.icons://icon.png
screenshotsScreenshot[]Een array van screenshots voor de app, gebruikt in installatie-dialogen.[]
categoriesString[]Categorieën om de app te classificeren (bijv. Financiën, Winkelen).[]

@AppProfile.Icon eigenschappen

Iconen definiëren de visuele representatie van je app in menu's en startschermen. De @AppProfile.Icon annotatie ondersteunt de volgende eigenschappen:

EigenschapTypeBeschrijvingStandaardwaarde
srcStringHet pad naar het icoon. Dit kan een absolute URL zijn of een ws:// pad.Verplicht
sizesStringEen string die een of meer maten van de afbeelding specificeert in het formaat BreedtexHoogte (bijv. 512x512).Verplicht
typeStringHet mediatype van het icoon (bijv. image/png, image/jpeg). Als niet opgegeven, wordt het gedetecteerd""
purposeStringHet doel van het icoon (bijv. any, maskable, monochrome).""

Voorbeeld

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

@AppProfile.DefaultIcon eigenschappen

De DefaultIcon annotatie vereenvoudigt de configuratie van app-iconen door meerdere formaatvarianten vanuit een basisicoon te genereren. Het produceert iconen op de resoluties die apparaten doorgaans aanvragen.

EigenschapTypeBeschrijvingStandaardwaarde
valueStringHet pad naar het basisicoonbestand. Dit kan een absolute URL zijn of een ws:// pad.Verplicht
sizesint[]Een array van maten die gegenereerd moeten worden, gespecificeerd als gehele getallen (bijv. {144, 192, 512}).{144, 192, 512}
Vereisten voor Icoonbestanden

Deze configuratie genereert de daadwerkelijke icoonbestanden voor de app niet automatisch. In plaats daarvan gebruikt het de @AppProfile.DefaultIcon annotatie om overeenkomstige @AppProfile.Icon items voor elke opgegeven grootte te genereren.

Als je het webserverprotocol gebruikt

  • Je moet een basis icon.png bestand in de static/icons map bieden.
  • Je wordt verwacht om extra icoonvariaties op te nemen die icon-144x144.png, icon-192x192.png en icon-512x512.png worden genoemd.
  • Deze specifieke maten dekken de resoluties die apparaten doorgaans aanvragen.

Als je het iconenprotocol gebruikt

  • Je wordt verwacht om een basis icon.png bestand in de /icons map te bieden.
  • Het icons eindpunt biedt dynamisch verschillende icoongroottes op aanvraag wanneer ze worden aangevraagd.

@AppProfile.Screenshot eigenschappen

Screenshots bieden een preview van de app in installatie-dialogen of app stores. De @AppProfile.Screenshot annotatie ondersteunt de volgende eigenschappen:

EigenschapTypeBeschrijvingStandaardwaarde
srcStringHet pad naar de screenshot. Dit kan een absolute URL zijn of een ws:// pad.Verplicht
sizesStringEen string die een of meer maten van de afbeelding specificeert in het formaat BreedtexHoogte (bijv. 1080x1920).Verplicht
typeStringHet mediatype van de screenshot (bijv. image/png, image/jpeg). Als niet opgegeven, wordt het gedetecteerd""
labelStringEen beschrijvende label voor de screenshot.""
formFactorStringDe vormfactor van de screenshot (bijv. narrow, wide).""
platformStringHet platform waarvoor de screenshot bedoeld is (bijv. ios, android).""

Voorbeeld

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