Uppdaterad den 6. maj 2024 av Jan Bunk
Det finns många fall där det kan vara användbart att skilja mellan en person som tittar på din webbplats i webbläsaren och en person som tittar på den genom din app. Kanske vill du se analyser för hur väl din app tas emot av användare eller så vill du visa olika innehåll för appanvändare.
Precis som det finns flera användningsområden, finns det också flera sätt att uppnå detta mål. Låt oss gå igenom dem en efter en.
User agent är en kort sträng som webbläsaren skickar till webbplatser när den laddar en sida. User agent innehåller information om webbläsaren, till exempel kan en Firefox-webbläsare skicka en user agent som ser ut så här:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Från det kan din webbplats upptäcka att användaren använder version 47.0 av Mozilla Firefox-webbläsaren. Precis som webbläsare skickar din app också en user agent som identifierar den.
Appen använder några olika användaragenter:
$version är appens interna version (t.ex. 1.4.8+52) och $operatingSystem är den plattform som appen används på (t.ex. ios eller android).
$regularUserAgent är användaragenten för en mobil webbläsare som kan förväntas av enheten, till exempel Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Så en exempel user-agent som appen kan använda på iOS skulle vara: 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
Baserat på ovanstående user agent-format kan du upptäcka att din webbplats laddas av appen genom att kontrollera om user agent innehåller "App-WebView". Om du också vill kontrollera operativsystemet kan du dessutom kontrollera om user agent också innehåller "(android)" eller "(ios)".
Om du använder WordPress kan du använda pluginet "UserAgent Content Switcher". Namnet på pluginet är ganska beskrivande: det låter dig visa olika innehåll för användare baserat på deras user agent. Så här kan du ställa in det (och ett exempel på användningsfall):
Denna text är synlig för alla.
[agentsw ua='app']
Denna text är bara synlig för appanvändare!
[/agentsw]
Om du använder Elementor kan du istället använda det gratis Powerpack-pluginet med powerpack-webtoapp-tilläggspluginet. Så här fungerar det:
Självklart kan du inte bara kontrollera user agent på serversidan (som beskrivs i föregående avsnitt), utan också i JavaScript.
Här är ett exempel på hur du kan använda JavaScript för att upptäcka om användaren använder appen eller en webbläsare:
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.");
}
Alternativt kan du använda getAppPlatform
från appens hjälpskript, som fungerar på ett mycket liknande sätt.
Appen gör små osynliga ändringar i webbplatsens HTML som är nödvändiga för vissa funktioner i appen. Vi kan också använda dessa ändringar för att upptäcka om sidan laddades av appen.
Eftersom detta är lite knepigt rekommenderar vi att du använder executeWhenAppReady
från appens hjälpskript.
Då kan du lägga vilken kod som helst inuti executeWhenAppReady
-funktionen, och den kommer bara att köras om sidan laddades av appen.
En liten nackdel med denna metod är att det tar några millisekunder innan koden körs, även om sidan laddades av appen.
På din webbplats anpassningssida har du möjlighet att lägga till valfri JavaScript eller CSS som appen ska injicera i varje sida som laddas. Möjligheterna är oändliga med detta, men som ett exempel, låt oss göra denna text grön i appen:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Nu kan vi konfigurera denna JavaScript för att injicera:
document.getElementById("red-text").style.color = "green";
Eller alternativt, denna CSS för att injicera:
#red-text {
color: green !important;
}
Så som du kan se, fungerar detta också som ett sätt att ha olika beteenden på webbplatsen än i appen.
Relaterade artiklar
Progressiva webbappar vs. native-appar
Vill du ta din webbplats till nästa nivå? Här är hur progressiva webbappar står sig mot vanliga native-appar och att omvandla din webbplats till en app.
Vi publicerade 238 appar - Så här lång tid tog appgranskningen
Vi publicerade många appar och spårade hur lång tid det tog att få dem in i appbutikerna, inklusive appavslag och ominsändningstider.
Hur man: Använd lösenordsautofyll i din app
Lösenordssparande och automatisk ifyllning gör inloggning mer bekväm för dina appanvändare. Så här fungerar det och vilken ytterligare inställning som behövs.
Hej, jag heter Jan! Jag skapade webtoapp.design 2019 när jag studerade datavetenskap på universitetet. Mycket har förändrats sedan dess - inte bara har jag tagit examen, utan det är också inte längre bara jag som driver webtoapp.design. Vi har vuxit till ett globalt, helt fjärrstyrt team och har samlat massor av erfarenhet kring apputveckling och apppublicering. Vi har skapat och publicerat hundratals appar i appbutikerna, där de har laddats ner hundratusentals gånger.