Zaktualizowano 16. maja 2025 przez Jan Bunk
Jest wiele sytuacji, w których warto rozróżnić osobę przeglądającą Twoją stronę w przeglądarce od tej, która robi to przez aplikację. Może chcesz sprawdzić, jak dobrze użytkownicy przyjmują Twoją aplikację, albo pokazać inną treść użytkownikom aplikacji.
Tak jak jest wiele zastosowań, tak jest też kilka sposobów, by to osiągnąć. Przejdźmy przez nie po kolei.
User agent to krótki ciąg znaków, który przeglądarka wysyła do stron internetowych przy każdym ładowaniu strony. Zawiera on informacje o przeglądarce, na przykład przeglądarka Firefox może wysłać taki user agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Na tej podstawie Twoja strona może wykryć, że użytkownik korzysta z przeglądarki Mozilla Firefox w wersji 47.0. Tak samo jak przeglądarki, Twoja aplikacja również wysyła user agent, który ją identyfikuje.
Aplikacja używa kilku różnych user agentów:
$version to wewnętrzna wersja aplikacji (np. 1.4.8+52), a $operatingSystem to platforma, na której działa aplikacja (np. ios lub android).
$regularUserAgent to user agent mobilnej przeglądarki, którego można się spodziewać na danym urządzeniu, np. Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Przykładowy user agent, którego aplikacja może użyć na iOS, wyglądałby tak: 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
W ustawieniach nawigacji możesz też sprawić, by $regularUserAgent bardziej przypominał zwykłą przeglądarkę (a nie WebView). Na przykład doda Safari/605.1.15 po Mobile/15E148.
Na podstawie powyższego formatu user agenta możesz wykryć, że Twoja strona jest ładowana przez aplikację, sprawdzając, czy user agent zawiera "App-WebView". Jeśli chcesz sprawdzić też system operacyjny, możesz dodatkowo sprawdzić, czy user agent zawiera "(android)" lub "(ios)".
Jeśli korzystasz z WordPressa, możesz użyć wtyczki "UserAgent Content Switcher". Nazwa wtyczki mówi sama za siebie: pozwala pokazywać różną treść użytkownikom w zależności od ich user agenta. Oto jak ją skonfigurować (i przykładowe zastosowanie):
Ten tekst jest widoczny dla wszystkich.
[agentsw ua='app']
Ten tekst widzą tylko użytkownicy aplikacji!
[/agentsw]
Jeśli korzystasz z Elementora, możesz zamiast tego użyć darmowej wtyczki Powerpack wraz z rozszerzeniem powerpack-webtoapp. Oto jak to działa:
Oczywiście możesz sprawdzać user agenta nie tylko po stronie serwera (jak opisano wcześniej), ale także w JavaScript.
Oto przykład, jak za pomocą JavaScript wykryć, czy użytkownik korzysta z aplikacji czy przeglądarki:
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.");
}
Alternatywnie możesz użyć getAppPlatform
ze skryptu pomocniczego aplikacji, który działa bardzo podobnie.Aplikacja wprowadza drobne, niewidoczne zmiany w kodzie HTML strony, które są potrzebne do działania niektórych funkcji aplikacji. Możemy też wykorzystać te zmiany, by wykryć, czy strona została załadowana przez aplikację.
Ponieważ to trochę trudniejsze, polecamy użyć executeWhenAppReady
ze skryptu pomocniczego aplikacji. Możesz wtedy umieścić dowolny kod wewnątrz funkcji executeWhenAppReady
, a zostanie on wykonany tylko wtedy, gdy strona została załadowana przez aplikację. Małym minusem tej metody jest to, że kod wykona się z kilkumilisekundowym opóźnieniem, nawet jeśli strona została załadowana przez aplikację.
Na stronie personalizacji strony możesz dodać dowolny JavaScript lub CSS, który aplikacja powinna wstrzykiwać na każdej ładowanej stronie. Możliwości są tu praktycznie nieograniczone, ale na przykładzie sprawmy, by ten tekst był zielony w aplikacji:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Możemy teraz ustawić, by aplikacja wstrzykiwała taki JavaScript:
document.getElementById("red-text").style.color = "green";
Albo alternatywnie taki CSS:
#red-text {
color: green !important;
}
Jak widzisz, to także sposób na uzyskanie innego zachowania na stronie i w aplikacji.
Powiązane artykuły
Progressive Web Apps vs. aplikacje natywne
Chcesz przenieść swoją stronę na wyższy poziom? Zobacz, jak aplikacje progresywne wypadają w porównaniu do standardowych aplikacji natywnych i zamiany strony w aplikację.
Opublikowaliśmy 238 aplikacji – oto ile trwała ich weryfikacja
Opublikowaliśmy wiele aplikacji i śledziliśmy, ile czasu zajęło ich umieszczenie w sklepach, wliczając odrzucenia i ponowne zgłoszenia.
Jak korzystać z autouzupełniania haseł w aplikacji
Zapisywanie i automatyczne uzupełnianie haseł ułatwia logowanie użytkownikom Twojej aplikacji. Zobacz, jak to działa i co trzeba dodatkowo skonfigurować.
Cześć, jestem Jan! Stworzyłem webtoapp.design w 2019 roku podczas studiów informatycznych na uniwersytecie. Od tego czasu wiele się zmieniło – nie tylko ukończyłem studia, ale też nie prowadzę już webtoapp.design sam. Rozwinęliśmy się w globalny, w pełni zdalny zespół i zdobyliśmy mnóstwo doświadczenia w tworzeniu i publikowaniu aplikacji. Stworzyliśmy i opublikowaliśmy setki aplikacji w sklepach, gdzie zostały pobrane miliony razy.