Ga naar hoofdinhoud

Installable Apps

Open 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 naadloos 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 voor Veilige Oorsprong

Voor een app om installeerbaar te zijn, moet deze vanaf een veilige oorsprong worden geleverd, zoals https. Deze vereiste zorgt ervoor dat de app voldoet aan de noodzakelijke beveiligingsnormen voor installatie. Deze regel geldt echter niet wanneer de app lokaal vanaf localhost tijdens de ontwikkeling wordt aangeboden.

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

@AppProfile annotatie

De @AppProfile annotatie wordt toegepast op de hoofdapp-klasse en vereist minimale configuratie. Minimaal moet je voorzien in:

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

Aanvullende optionele eigenschappen maken aanpassing van het uiterlijk en gedrag van de app mogelijk.

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

  • Automatisch opzetten van noodzakelijke meta-tags.
  • Genereren van een Web Application Manifest.
  • Serveren van gerelateerde bronnen zoals iconen en screenshots.

Voorbeeld: Toepassen van @AppProfile

@AppProfile(
name = "Zyntric Bank",
shortName = "ZBank",
description = "Zyntric Bank is een eenvoudige bankapplicatie 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 een overzicht van alle eigenschappen die worden ondersteund door de @AppProfile annotatie:

EigenschapTypeBeschrijvingStandaardwaarde
nameStringDe volledige naam van de app, weergegeven in app-menu's en installatie-dialoogvensters.Verplicht
shortNameStringEen korte versie van de naam, gebruikt in contexten met beperkte ruimte. Mag niet meer dan 12 tekens bevatten.Verplicht
descriptionStringEen korte beschrijving van de app, weergegeven tijdens 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 wordt geopend 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 iconpaden in meerdere maten indien geconfigureerd.icons://icon.png
screenshotsScreenshot[]Een array van screenshots voor de app, gebruikt in installatie-dialoogvensters.[]
categoriesString[]Categorieën om de app te classificeren (bijv. Finance, Shopping).[]

@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 absoluut URL zijn, of een ws:// pad.Verplicht
sizesStringEen string die een of meer formaten van het beeld specificeert in het formaat BreedtexHoogte (bijv. 512x512).Verplicht
typeStringHet MIME-type van het icoon (bijv. image/png, image/jpeg). Als dit niet wordt verstrekt, 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 maatvarianten te genereren vanuit een basisicoon. Dit is met name nuttig om compatibiliteit te waarborgen op apparaten met verschillende resoluties.

EigenschapTypeBeschrijvingStandaardwaarde
valueStringHet pad naar het basisicoonbestand. Dit kan een absoluut URL zijn, of een ws:// pad.Verplicht
sizesint[]Een array van groottes om te genereren, 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 de overeenkomstige @AppProfile.Icon vermeldingen voor elke gespecificeerde grootte te genereren.

Als je het webserverprotocol gebruikt

  • Je moet een basisbestand icon.png in de static/icons map leveren.
  • Je wordt verwacht aanvullende icoonvarianten op te nemen met de namen icon-144x144.png, icon-192x192.png, en icon-512x512.png.
  • Deze specifieke groottes zorgen voor compatibiliteit met verschillende apparaten en resoluties.

Als je het iconenprotocol gebruikt

  • Je wordt verwacht een basisbestand icon.png in de /icons map te leveren.
  • De icons eindpunt levert dynamisch verschillende icoongroottes op aanvraag wanneer ze worden aangevraagd.

@AppProfile.Screenshot eigenschappen

Screenshots bieden een voorvertoning van de app in installatie-dialoogvensters of app-winkels. De @AppProfile.Screenshot annotatie ondersteunt de volgende eigenschappen:

EigenschapTypeBeschrijvingStandaardwaarde
srcStringHet pad naar de screenshot. Dit kan een absoluut URL zijn, of een ws:// pad.Verplicht
sizesStringEen string die één of meer groottes van het beeld specificeert in het formaat BreedtexHoogte (bijv. 1080x1920).Verplicht
typeStringHet MIME-type van de screenshot (bijv. image/png, image/jpeg). Als dit niet wordt verstrekt, 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"
)