Postato su 21. marzo 2024 da Jan Bunk
Ci sono molti casi in cui può essere utile distinguere tra una persona che visualizza il tuo sito web nel browser e una persona che lo visualizza attraverso la tua app. Forse vuoi visualizzare i dati analitici relativi al grado di adozione della tua app da parte degli utenti o vuoi mostrare contenuti diversi agli utenti dell'app.
Così come esistono diversi casi d'uso, esistono anche diversi modi per raggiungere questo obiettivo. Analizziamoli uno per uno.
L'agente utente è una breve stringa che il browser invia ai siti web ogni volta che carica una pagina. L'user agent contiene informazioni sul browser, ad esempio un browser Firefox potrebbe inviare qualcosa come questo user agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Da qui, il tuo sito web può rilevare che l'utente sta utilizzando la versione 47.0 del browser Mozilla Firefox. Proprio come i browser, anche la tua applicazione invia un user agent che la identifica.
L'applicazione utilizza alcuni user agent diversi:
$version è la versione interna dell'app (es. 1.4.8+52) e $operatingSystem è la piattaforma su cui l'app viene utilizzata (es. ios o android).
$regularUserAgent è lo user agent di un browser mobile che ci si aspetterebbe da dispositivi, come Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Quindi un esempio di user-agent che l'app potrebbe utilizzare su iOS sarebbe: Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 App-WebView (ios) 1.4.8+52
In base al formato dell'user agent di cui sopra, puoi rilevare che il tuo sito web viene caricato dall'applicazione controllando se l'user agent contiene "App-WebView". Se vuoi verificare anche il sistema operativo, puoi controllare se l'user agent contiene anche "(android)" o "(ios)".
Se utilizzi WordPress, puoi utilizzare il plugin "UserAgent Content Switcher". Il nome del plugin è abbastanza descrittivo: ti permette di mostrare contenuti diversi agli utenti in base al loro user agent. Ecco come puoi configurarlo (e un esempio di utilizzo):
Questo testo è visibile a tutti.
[agentsw ua='app']
Questo testo è visibile solo agli utenti dell'app!
[/agentsw]
Ovviamente non puoi controllare l'agente utente solo sul lato server (come descritto nella sezione precedente), ma anche in JavaScript.
Ecco un esempio di come puoi utilizzare JavaScript per rilevare se l'utente sta utilizzando l'app o un browser:
const isApp = navigator.userAgent.includes("App-WebView");
if (isApp) {
console.log("The user is using the app.");
} else {
console.log("The user is using a browser.");
}
In alternativa, puoi utilizzare getAppPlatform
dallo script helper dell'app, che funziona in modo molto simile.
L'applicazione apporta piccole modifiche invisibili all'HTML del sito web, necessarie per alcune funzioni dell'applicazione. Possiamo anche utilizzare queste modifiche per rilevare se la pagina è stata caricata dall'applicazione.
Poiché è un po' complicato, ti consigliamo di utilizzare executeWhenAppReady
dallo script helper dell'app.
Quindi puoi inserire qualsiasi codice all'interno della funzione executeWhenAppReady
e verrà eseguito solo se la pagina è stata caricata dall'applicazione.
Un piccolo svantaggio di questo metodo è che ci vogliono alcuni millisecondi prima che il codice venga eseguito, anche se la pagina è stata caricata dall'applicazione.
Nella pagina di personalizzazione del sito web hai la possibilità di aggiungere qualsiasi JavaScript o CSS che l'applicazione deve iniettare in ogni pagina caricata. Le possibilità sono infinite ma, a titolo di esempio, rendiamo questo testo verde nell'applicazione:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Ora possiamo configurare questo JavaScript da iniettare:
document.getElementById("red-text").style.color = "green";
Oppure, in alternativa, questo CSS da iniettare:
#red-text {
color: green !important;
}
Quindi, come puoi vedere, questo funziona anche come un modo per avere un comportamento diverso sul sito web rispetto all'app.
Articoli correlati
Applicazioni web progressive vs. applicazioni native
Vuoi portare il tuo sito web a un livello superiore? Ecco come le progressive web app si posizionano rispetto alle app native standard e come trasformare il tuo sito web in un'app.
Abbiamo pubblicato le app di 238: ecco quanto tempo ha richiesto la revisione delle app
Abbiamo pubblicato molte app e abbiamo monitorato il tempo necessario per inserirle negli app store, compresi i tempi di rifiuto e di ripresentazione delle app.
Converti il tuo sito web in un'app
Converti il tuo sito web in un'app per sfruttare le notifiche push, migliorare la brand awareness e molto altro ancora. Nessun codice.
Ciao, sono Jan! Ho creato webtoapp.design nel 2019 mentre studiavo informatica all'università. Da allora sono cambiate molte cose: non solo mi sono laureato, ma non sono più solo nella gestione di webtoapp.design. Siamo diventati un team globale e completamente in remoto e abbiamo accumulato molta esperienza nello sviluppo e nella pubblicazione di app. Abbiamo creato e pubblicato centinaia di app negli app store, dove sono state scaricate centinaia di migliaia di volte.