Bijgewerkt op 6. mei 2024 door Jan Bunk
Er zijn veel gevallen waarin het nuttig kan zijn om te differentiëren tussen iemand die je website in de browser bekijkt en iemand die het via je app bekijkt. Misschien wil je analyses bekijken over hoe goed je app door gebruikers wordt geadopteerd of wil je andere content aan app-gebruikers tonen.
Net zoals er meerdere use cases zijn, zijn er ook meerdere manieren om dit doel te bereiken. Laten we ze één voor één doornemen.
De user agent is een korte string die de browser naar websites stuurt wanneer een pagina wordt geladen. De user agent bevat informatie over de browser, bijvoorbeeld een Firefox-browser kan iets sturen zoals deze user agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Daaruit kan je website detecteren dat de gebruiker versie 47.0 van de Mozilla Firefox-browser gebruikt. Net als browsers stuurt je app ook een user agent die het identificeert.
De app gebruikt een paar verschillende user agents:
$version is de interne versie van de app (b.v. 1.4.8+52) en $operatingSystem is het platform waarop de app gebruikt wordt (bijv. ios of android).
$regularUserAgent is de user agent van een mobiele browser die van het toestel verwacht zou worden, zoals Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Dus een voorbeeld van een user-agent die de app op iOS zou kunnen gebruiken, is: 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
Op basis van het bovenstaande user agent-formaat kun je detecteren dat je website door de app wordt geladen door te controleren of de user agent "App-WebView" bevat. Als je ook het besturingssysteem wilt controleren, kun je daarnaast controleren of de user agent ook "(android)" of "(ios)" bevat.
Als je WordPress gebruikt, kun je de "UserAgent Content Switcher" plugin gebruiken. De naam van de plugin is vrij beschrijvend: het stelt je in staat om verschillende content aan gebruikers te tonen op basis van hun user agent. Hier is hoe je het kunt instellen (en een voorbeeld use case):
Deze tekst is zichtbaar voor iedereen.
[agentsw ua='app']
Deze tekst is alleen zichtbaar voor app-gebruikers!
[/agentsw]
Als je Elementor gebruikt, kun je in plaats daarvan de gratis Powerpack plugin gebruiken met de powerpack-webtoapp extensie plugin. Hier is hoe het werkt:
Natuurlijk kun je niet alleen de user agent aan de serverkant controleren (zoals beschreven in de vorige sectie), maar ook in JavaScript.
Hier is een voorbeeld van hoe je JavaScript kunt gebruiken om te detecteren of de gebruiker de app of een browser gebruikt:
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.");
}
Je kunt ook getAppPlatform
gebruiken van het app helper script, dat op een vergelijkbare manier werkt.De app maakt kleine onzichtbare wijzigingen aan de HTML van de website die nodig zijn voor sommige functies van de app. We kunnen deze wijzigingen ook gebruiken om te detecteren of de pagina door de app is geladen.
Omdat dit een beetje lastig is, raden we aan om executeWhenAppReady
van het app helper script te gebruiken. Je kunt dan elke code binnen de executeWhenAppReady
functie plaatsen, en deze wordt alleen uitgevoerd als de pagina door de app is geladen. Een klein nadeel van deze methode is dat het een paar milliseconden duurt voordat de code wordt uitgevoerd, zelfs als de pagina door de app is geladen.
Op je website-aanpassingspagina heb je de optie om JavaScript of CSS toe te voegen die de app in elke geladen pagina moet injecteren. De mogelijkheden zijn eindeloos hiermee, maar als voorbeeld, laten we deze tekst groen maken in de app:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Nu zouden we deze JavaScript kunnen configureren om te injecteren:
document.getElementById("red-text").style.color = "green";
Of als alternatief, deze CSS om te injecteren:
#red-text {
color: green !important;
}
Zoals je kunt zien, werkt dit ook als een manier om ander gedrag op de website dan in de app te hebben.
Gerelateerde artikelen
Progressive Web Apps vs. Native Apps
Wil je je website naar een hoger niveau tillen? Hier is hoe progressive web apps zich verhouden tot standaard native apps en hoe je je website in een app kunt omzetten.
We Hebben 238 Apps Gepubliceerd - Dit is Hoe Lang de App Review Duurde
We hebben veel apps gepubliceerd en bijgehouden hoe lang het duurde om ze in de app stores te krijgen, inclusief app afwijzing en herindieningstijden.
Hoe te: Wachtwoord Autofill Gebruiken in je App
Wachtwoorden opslaan en automatisch invullen maakt inloggen gemakkelijker voor je appgebruikers. Hier is hoe het werkt en welke extra instellingen nodig zijn.
Hoi, ik ben Jan! Ik heb webtoapp.design in 2019 opgericht terwijl ik informatica studeerde aan de universiteit. Er is sindsdien veel veranderd - niet alleen ben ik afgestudeerd, maar het is ook niet langer alleen ik die webtoapp.design runt. We zijn uitgegroeid tot een wereldwijd, volledig remote team en hebben veel ervaring opgedaan met app-ontwikkeling en app-publicatie. We hebben honderden apps gemaakt en gepubliceerd in de app stores, waar ze miljoenen keren zijn gedownload.