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 sta caricando 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 usando 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 usare 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 di 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 anche "(android)" o "(ios)".
Se stai usando WordPress, puoi usare 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 stai usando Elementor, puoi invece usare il plugin gratuito Powerpack con il plugin di estensione powerpack-webtoapp. Ecco come funziona:
Ovviamente puoi controllare l'user agent non solo sul lato server (come descritto 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 di aiuto 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 di aiuto dell'app. Poi 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;
}
Quindi, come puoi vedere, questo funziona anche come un modo per avere un comportamento diverso 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 apps si confrontano con le app native standard e come trasformare 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 di ripresentazione delle app.
Come Fare: Usare il Riempimento Automatico delle Password nella Tua App
Salvare le password e il riempimento automatico rende il login più comodo per gli utenti della tua app. Ecco come funziona e quale configurazione aggiuntiva è necessaria.
Ciao, sono Jan! Ho creato webtoapp.design nel 2019 mentre studiavo informatica all'università. Molto è cambiato da allora - non solo mi sono laureato, ma non sono più solo io a gestire webtoapp.design. Siamo cresciuti fino a diventare un team globale, completamente 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 milioni di volte.