Aggiornato il 6. maggio 2024 da Jan Bunk
Ci sono molti casi in cui può essere utile differenziare tra una persona che sta visualizzando il tuo sito web nel browser e una persona che lo sta visualizzando tramite la tua app. Magari vuoi visualizzare le analisi su quanto bene la tua app viene adottata dagli utenti o vuoi mostrare contenuti diversi agli utenti dell'app.
Proprio come ci sono molteplici casi d'uso, ci sono anche molteplici modi per raggiungere questo obiettivo. Vediamoli uno per uno.
Il user agent è una breve stringa che il browser invia ai siti web ogni volta che carica una pagina. Il user agent contiene informazioni sul browser, ad esempio un browser Firefox potrebbe inviare un user agent come questo:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Da ciò, 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 app 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
Basandoti sul formato del user agent sopra, puoi rilevare che il tuo sito web viene caricato dall'app controllando se il user agent contiene 'App-WebView'. Se vuoi controllare anche il sistema operativo, puoi inoltre verificare se il user agent contiene '(android)' o '(ios)'.
Se stai usando 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 caso d'uso):
Questo testo è visibile a tutti.
[agentsw ua='app']
Questo testo è visibile solo agli utenti dell'app!
[/agentsw]
Se usi Elementor, puoi invece utilizzare il plugin gratuito Powerpack con l'estensione powerpack-webtoapp. Ecco come funziona:
Ovviamente puoi controllare l'user agent non solo sul lato server (come dettagliato nella sezione precedente), ma anche in JavaScript.
Ecco un esempio di come puoi usare JavaScript per rilevare se l'utente sta usando 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 usare getAppPlatform
dallo script helper dell'app, che funziona in modo molto simile.
L'app apporta piccole modifiche invisibili all'HTML del sito web che sono necessarie per alcune funzionalità dell'app. Possiamo anche usare queste modifiche per rilevare se la pagina è stata caricata dall'app.
Poiché questo è un po' complicato, ti consigliamo di usare executeWhenAppReady
dallo script helper dell'app.
Puoi inserire qualsiasi codice all'interno della funzione executeWhenAppReady
, e verrà eseguito solo se la pagina è stata caricata dall'app.
Un piccolo svantaggio di questo metodo è che ci vogliono alcuni millisecondi prima che il codice venga eseguito, anche se la pagina è stata caricata dall'app.
Nella pagina di personalizzazione del tuo sito web hai l'opzione di aggiungere qualsiasi JavaScript o CSS che l'app dovrebbe iniettare in ogni pagina caricata. Le possibilità sono infinite con questo, ma come esempio, facciamo diventare questo testo verde nell'app:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Ora potremmo configurare questo JavaScript da iniettare:
document.getElementById("red-text").style.color = "green";
Oppure, in alternativa, questo CSS da iniettare:
#red-text {
color: green !important;
}
Come puoi vedere, questo funziona anche come un modo per avere comportamenti diversi sul sito web rispetto all'app.
Articoli correlati
Progressive Web Apps vs. App Native
Vuoi portare il tuo sito web al livello successivo? Ecco come le progressive web app si confrontano con le app native standard e trasformano il tuo sito web in un'app.
Abbiamo pubblicato 238 app - Ecco quanto tempo ha impiegato la revisione delle app
Abbiamo pubblicato molte app e monitorato quanto tempo ci è voluto per farle entrare negli app store, inclusi i tempi di rifiuto e reinvio delle app.
Come fare: Utilizzare l'autocompletamento delle password nella tua app
Il salvataggio delle password e la compilazione automatica rendono l'accesso più conveniente per gli utenti della tua app. Ecco come funziona e quali configurazioni aggiuntive sono necessarie.
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.