Lavorare su più documenti alla volta con le schede nell'app web progressiva
Nel mondo dell'informatica, la metafora del desktop è una metafora dell'interfaccia che rappresenta un insieme di concetti unificanti utilizzati dalle interfacce grafiche utente (GUI) per aiutare gli utenti a interagire più facilmente con il computer. In linea con la metafora del desktop, le schede dell'interfaccia utente sono modellate sulle schede tradizionali inserite in libri, fascicoli o indici di schede. Una scheda o un'interfaccia di documento con schede (TDI) è un elemento di controllo grafico che consente di includere più documenti o pannelli in un'unica finestra, utilizzando le schede come widget di navigazione per passare da un insieme di documenti all'altro.
Le app web progressive possono essere eseguite in varie modalità di visualizzazione determinate dalla proprietà display
nel file manifest dell'app web. Alcuni esempi sono fullscreen
, standalone
, minimal-ui
e browser
. Queste modalità di visualizzazione seguono una
catena di riserva ben definita
("fullscreen"
→ "standalone"
→ "minimal-ui"
→ "browser"
). Se un browser non supporta una
determinata modalità, passa alla modalità di visualizzazione successiva della catena. Tramite la proprietà
"display_override"
, gli sviluppatori possono specificare la propria catena di riserva
se necessario.
Che cos'è la modalità di applicazione a schede
Finora nella piattaforma mancava un modo per consentire agli sviluppatori di PWA di offrire ai propri utenti un'interfaccia di documenti con schede, ad esempio per consentire la modifica di diversi file nella stessa finestra della PWA. La modalità di applicazione a schede colma questa lacuna.
Casi d'uso suggeriti per la modalità di applicazione con schede
Ecco alcuni esempi di siti che potrebbero utilizzare la modalità di applicazione a schede:
- App di produttività che consentono all'utente di modificare più documenti (o file) contemporaneamente.
- App di comunicazione che consentono all'utente di avere conversazioni in stanze diverse per scheda.
- App di lettura che aprono i link agli articoli in nuove schede in-app.
Differenze rispetto alle schede create dagli sviluppatori
Avere i documenti in schede del browser separate comporta l'isolamento delle risorse senza costi aggiuntivi, cosa che non è possibile fare oggi utilizzando il web. Le schede create dagli sviluppatori non possono essere scalate in modo accettabile a centinaia di schede come accade per le schede del browser. Le funzionalità del browser come la cronologia di navigazione, "Copia l'URL di questa pagina", "Trasmetti questa scheda" o "Apri questa pagina in un browser web" verrebbero applicate alla pagina dell'interfaccia con schede creata dallo sviluppatore, ma non alla pagina del documento attualmente selezionata.
Differenze rispetto a "display": "browser"
L'attuale "display": "browser"
ha già un
significato specifico:
Apre l'applicazione web utilizzando la convenzione specifica della piattaforma per l'apertura dei link ipertestuali nell'agente utente (ad es. in una scheda del browser o in una nuova finestra).
Sebbene i browser possano fare ciò che vogliono in merito all'interfaccia utente, sarebbe chiaramente una sovversione piuttosto grande delle aspettative degli sviluppatori se "display": "browser"
significasse improvvisamente "esegui in una finestra distinta specifica per l'applicazione senza funzionalità del browser, ma con un'interfaccia di documento a schede".
L'impostazione "display": "browser"
è il modo per disattivare la visualizzazione in una finestra dell'applicazione.
Stato attuale
Passaggio | Stato |
---|---|
1. Creare un video esplicativo | Completata |
2. Creare una bozza iniziale della specifica | Non avviato |
3. Raccogli feedback e esegui l'iterazione sul design | In corso |
4. Prova dell'origine | In corso |
5. Lancio | Non avviato |
Utilizzare la modalità di applicazione con schede
Per utilizzare la modalità di applicazione a schede, gli sviluppatori devono attivarla nelle proprie app impostando un valore specifico della modalità "display_override"
nel file manifest dell'app web.
{
"display": "standalone",
"display_override": ["tabbed"]
}
Successivamente, la proprietà "tab_strip"
può essere utilizzata facoltativamente per perfezionare il comportamento della scheda. Ha due proprietà secondarie consentite, "home_tab"
e "new_tab_button"
. Se la proprietà "tab_strip"
non è presente, vengono utilizzati i valori "auto"
delle proprietà specifiche. Il browser determina quali valori utilizzare per "auto"
.
Scheda Home
La scheda Home è una scheda bloccata che, se attivata per un'app, deve essere sempre presente quando l'app è aperta. Questa scheda non deve mai essere visualizzata. I link su cui fai clic da questa scheda dovrebbero aprirsi in una nuova scheda dell'app. Le app possono scegliere di personalizzare l'URL a cui è bloccata questa scheda e l'icona visualizzata al suo interno.
I valori consentiti per "home_tab"
sono:
"auto"
per consentire al browser di determinare cosa fare."absent"
per indicare al browser di non mostrare una scheda Home.- Un oggetto con due proprietà secondarie:
"url"
con i valori consentiti di"auto"
o un URL a cui bloccare la scheda Home."icons"
con i valori consentiti di"auto"
o un array di icone come nella proprietà"icons"
principale.
Pulsante Nuova scheda
Il pulsante della nuova scheda, se presente, deve aprire una nuova scheda con un URL che rientra nell'ambito dell'app. L'app può scegliere di impostare un URL e un'icona personalizzati per questo pulsante. I browser possono decidere come gestire il trascinamento di queste schede per creare nuove finestre o combinarle con le schede del browser.
I valori consentiti per "new_tab_button"
sono:
"auto"
per consentire al browser di determinare cosa fare."absent"
per indicare al browser di non mostrare un pulsante per una nuova scheda.- Un oggetto con due proprietà secondarie:
"url"
con i valori consentiti di"auto"
o un URL ambito in cui aprire nuove schede."icons"
con i valori consentiti di"auto"
o un array di icone come nella proprietà"icons"
principale.
Esempio completo
Un esempio completo per configurare il comportamento di un'app con un'interfaccia a schede potrebbe essere il seguente:
{
"display_override": ["tabbed"],
"tab_strip": {
"home_tab": {
"url": "./home/",
"icons": [
{
"src": "./home.svg",
"sizes": "any",
"type": "image/svg+xml"
}
]
},
"new_tab_button": {
"url": "./new-tab/",
"icons": [
{
"src": "./new-tab.svg",
"sizes": "any",
"type": "image/svg+xml"
}
]
}
}
}
Rilevamento della modalità dell'applicazione a schede
Le app possono rilevare se sono in esecuzione in modalità di applicazione a schede controllando la
display-mode
funzionalità dei contenuti multimediali del CSS
in CSS o JavaScript:
@media (display-mode: tabbed) {
/* Styles to apply in tabbed application mode. */
}
const tabbedApplicationModeEnabled = window.matchMedia('(display-mode: tabbed)').matches;
Interazione con l'API Launch Handler
L'API Launch Handler consente ai siti di reindirizzare i lanci di app nelle finestre delle app esistenti per evitare l'apertura di finestre duplicate. Quando un'app con schede imposta "client_mode": "navigate-new"
, i lanci dell'app apriranno una nuova scheda in una finestra dell'app esistente.
Demo
Puoi provare la modalità di applicazione a schede impostando un flag del browser:
- Imposta il flag
#enable-desktop-pwas-tab-strip
. - Installa l'app tabbed-application-mode.glitch.me (codice sorgente).
- Fai clic sui diversi link nelle diverse schede.
Feedback
Il team di Chrome vuole conoscere la tua esperienza con la modalità di applicazione a schede.
Fornisci informazioni sul design dell'API
C'è qualcosa nella modalità di applicazione a schede che non funziona come previsto? Commenta la issue del file manifest dell'app web che abbiamo creato.
Segnalare un problema con l'implementazione
Hai trovato un bug nell'implementazione di Chrome? Segnala un bug all'indirizzo
new.crbug.com. Assicurati di includere il maggior numero di dettagli possibile, istruzioni semplici per la riproduzione e inserisci UI>Browser>WebAppInstalls
nella casella Componenti.
Glitch è ideale per condividere casi di riproduzione facili e veloci.
Mostra il supporto per l'API
Hai intenzione di utilizzare la modalità di applicazione con schede? Il tuo supporto pubblico aiuta il team di Chrome a dare la priorità alle funzionalità e mostra ad altri fornitori di browser quanto sia fondamentale supportarle.
Invia un tweet all'account @ChromiumDev utilizzando l'hashtag
#TabbedApplicationMode
e facci sapere dove e come lo utilizzi.
Link utili
- Spiegazione
- Problema relativo alle specifiche del file manifest dell'app web
- Bug di Chromium
- Componente lampeggiante:
UI>Browser>WebAppInstalls
Ringraziamenti
La modalità di applicazione a schede è stata esplorata da Matt Giuca. L'implementazione sperimentale in Chrome è stata realizzata da Alan Cutter. Questo articolo è stato esaminato da Joe Medley. Immagine hero di Till Niermann su Wikimedia Commons.