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 analys 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ändningsfall, 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 något som denna user agent:
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 användaragenten 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 webbplatsanpassningssida har du möjlighet att lägga till JavaScript eller CSS som appen ska injicera på 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 detta 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 beteende 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 göra om 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 du: Använder lösenordsautofyll i din app
Lösenordssparande och automatisk ifyllning gör inloggning mer bekvämt 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 medan jag studerade datavetenskap på universitetet. Mycket har förändrats sedan dess - inte bara har jag tagit examen, men det är 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 miljontals gånger.