Siirry pääsisältöön

Sovelluksen merkinnät 26.01

Avaa ChatGPT:ssä

webforJ tarjoaa kaksi täydentävää merkki-APIa. App.setBadge maalaa käyttöjärjestelmän sovellusikonin, joka näkyy dokeissa, tehtäväpalkissa tai aloitusnäytöllä. Page.setIconBadge maalaa asiakirjan faviconin, joka näkyy selaimen välilehtirivillä. Ne kohdistavat eri pinnoille ja niillä on erilaiset vaatimukset, joten useimmat sovellukset kutsuvat molempia laajimman näkyvyyden saavuttamiseksi.

Sovelluksen kuvakebadge

App.setBadge renderoi merkin sovelluksen käytössä olevan kuvakkeen päälle: macOS-dokissa, Windowsin tehtäväpalkissa, Chrome OS:ssä tai Androidin aloitusnäytöllä.

Sovelluksen kuvakebadge macOS-dokissa

Ehdot

Merkki on näkyvissä vain, kun kaikki seuraavat asiat ovat totta:

  • Selain tukee merkkien piirtämistä sovelluskuvakkeille.
  • Sivusto tarjoillaan turvallisesta kontekstista (HTTPS tai http://localhost kehityksen aikana). Tavalliset HTTP-alkuperät hylkäävät kutsun.
  • Sovellus on asennettu laitteelle. Asennusprosessi vaihtelee selaimen mukaan: Chromium-selaimet tarjoavat asennuskehotteen kaikille sivuille, joilla on manifesti, Safari macOS:ssä käyttää Tiedosto → Lisää Dockiin, ja Safari iOS:ssä käyttää Jaa → Lisää aloitusnäytölle.

Jotta sovellus olisi asennettavissa Spring Bootin tai itsenäisen webforJ-palvelimen alla, lisää App-alamalliin AppProfile. Annotaatioprosessori luo manifestin, sovelluskuvaketunnisteet ja metatiedot, joita selain tarvitsee tarjotakseen asennuskehotteen.

@AppProfile(name = "Inbox", shortName = "Inbox")
public class Application extends App {}

Katso Asennettavat sovellukset -sivulta täydellinen luettelo @AppProfile-jäsenistä, kuvakkeen koosta ja alustakohtaisista ohjeista asennusprosessissa.

Selaintuki

Asennuksen jälkeen merkin renderointi riippuu selaimesta. Asennustuki käsitellään Asennettavat sovellukset -sivulla.

Selaimen nimiMerkki asennuksen jälkeen
Chrome, Edge, Opera ja muut Chromium-selaimet (työpöytä ja Android)Kyllä
Safari macOS Sononassa (Safari 17) ja myöhemminKyllä
Safari iOS 16.4 ja myöhemminKyllä
Firefox (kaikki alustat)Ei. Kutsu palauttaa ilman renderointia.

Merkin asettaminen ja tyhjentäminen

Anna positiivinen kokonaisluku näyttääksesi numeerisen merkin. Anna null tai 0 tyhjentääksesi sen. Kutsu ilman argumentteja näyttääksesi lipun indikaattorin (pieni piste, tarkka visuaalinen ilme on alustoittain määritetty).

App.setBadge(5);     // numeerinen merkki
App.setBadge(); // lipun indikaattori ilman numeroa
App.setBadge(0); // tyhjennä
App.setBadge(null); // tyhjennä

App.setBadge palauttaa välittömästi. Selain kirjoittaa merkin käyttöjärjestelmän pintaan asynkronisesti, eikä muutosta raportoida takaisin sovellukseen.

Selaimen välilehden kuvakebadge

Page.setIconBadge maalaa laskurin asiakirjan faviconin päälle. Se toimii missä tahansa välilehdessä ilman asennusta eikä vaadi manifestia. Merkki on näkyvissä selaimen välilehtirivillä ja muissa kohteissa, jotka renderöivät faviconin, kuten kirjanmerkit tai äskettäin katsotut sivut.

Selaimen välilehden favicon numeerisella merkillä

Merkin asettaminen ja tyhjentäminen

Page page = Page.getCurrent();

page.setIconBadge(5); // numeerinen merkki
page.setIconBadge(); // lipun indikaattori ilman numeroa
page.setIconBadge(0); // tyhjennä
page.setIconBadge(null); // tyhjennä

Merkin tyhjentäminen palauttaa alkuperäisen faviconin.

Käytettäessä BBjServices

Kun sovellus tarjoillaan BBjServices:llä, favicon on Pikanäppäimen kuva, joka on määritetty sovellukselle Enterprise Managerissa. Merkki maalataan mille tahansa kuvakkeelle, jonka Enterprise Manager tarjoaa. Jos pikakuvaketta ei ole määritetty, Page.setIconBadge ei overlayaa faviconia ja ei tee mitään hiljaa.

Merkin tyylittely

Anna IconBadgeOptions säätääksesi väriä, muotoa ja kokoa:

IconBadgeOptions options = new IconBadgeOptions()
.setColor(new Color(0x2e, 0x7d, 0x32))
.setShape(IconBadgeOptions.Shape.SQUARE)
.setSize(1.25);

Page.getCurrent().setIconBadge(5, options);

Options-objekti on arvon säilyttäjä. Kaikki asettajat palauttavat this, joten kutsuja voidaan ketjuttaa.

VaihtoehtoTyyppiOletusHuomautukset
colorjava.awt.Color#e53935Merkin taustaväri. Tekstin väri johdetaan automaattisesti kontrastista, jotta numerot pysyvät luettavina valitussa värissä.
shapeShapeCIRCLECIRCLE tai SQUARE.
sizedouble1.0Suhde. 0.5 on puoli oletusläpimittaa; 1.5 on 50% suurempi. Merkki rajataan sopimaan favicon-kankaan sisälle.

Selaimen varoitus

Safari ei päivitä faviconia ensimmäisen sivun lataamisen jälkeen. Kutsut Page.setIconBadge valmistuvat ilman virhettä, mutta Safari jatkaa alkuperäisen kuvakkeen näyttämistä. Käytä Page.setTitle -metodia myös lisätäksesi laskurin asiakirjan otsikkoon, jos tarvitset näkyvän vihjeen Safarissa.

int unread = 5;
Page page = Page.getCurrent();
page.setIconBadge(unread);
page.setTitle("(" + unread + ") Inbox");

Valinta kahden välillä

PintaAPIVaatii asennuksenNäkyy Safarissa
Käyttöjärjestelmän sovelluskuvakeApp.setBadgeKylläKyllä (macOS Sonoma / iOS 16.4 ja myöhemmin)
Selaimen välilehden faviconPage.setIconBadgeEiEi. Kutsu valmistuu ilman virhettä, mutta välilehtirivi ei päivity.

Useimmat sovellukset kutsuvat molempia, jotta merkki olisi näkyvissä riippumatta siitä, onko käyttäjä asennetussa ikkunassa vai tavallisessa selaimen välilehdessä.