Atualizado em 6. maio 2024 por Jan Bunk
Existem muitos casos em que pode ser útil diferenciar entre uma pessoa que está visualizando seu site no navegador e uma pessoa que está visualizando através do seu app. Talvez você queira ver análises de como seu app está sendo adotado pelos usuários ou queira mostrar conteúdo diferente para os usuários do app.
Assim como existem vários casos de uso, também existem várias maneiras de alcançar esse objetivo. Vamos passar por elas uma a uma.
O user agent é uma string curta que o navegador envia para os sites sempre que está carregando uma página. O user agent contém informações sobre o navegador, por exemplo, um navegador Firefox poderia enviar algo como este user agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0A partir disso, seu site pode detectar que o usuário está usando a versão 47.0 do navegador Mozilla Firefox. Assim como os navegadores, seu app também envia um user agent que o identifica.
O aplicativo usa alguns agentes de usuário diferentes:
$version é a versão interna do aplicativo (por exemplo 1.4.8+52) e $operatingSystem é a plataforma na qual o aplicativo está sendo usado (por exemplo ios ou android).
$regularUserAgent é o agente de usuário de um navegador móvel que seria esperado do dispositivo, como Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Então, um exemplo de user-agent que o app poderia usar no iOS seria: 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
Com base no formato de user agent acima, você pode detectar que seu site está sendo carregado pelo app verificando se o user agent contém 'App-WebView'. Se você quiser verificar o sistema operacional também, pode adicionalmente verificar se o user agent também contém '(android)' ou '(ios)'.
Se você está usando WordPress, pode usar o plugin 'UserAgent Content Switcher'. O nome do plugin é bastante descritivo: ele permite que você mostre conteúdo diferente para os usuários com base no user agent deles. Veja como configurá-lo (e um exemplo de caso de uso):
Este texto é visível para todos.
[agentsw ua='app']
Este texto é visível apenas para usuários do app!
[/agentsw]
Se estás a usar o Elementor, podes usar o plugin gratuito Powerpack com a extensão powerpack-webtoapp. Aqui está como funciona:
Claro que podes verificar o user agent não só no lado do servidor (como detalhado na seção anterior), mas também em JavaScript.
Aqui está um exemplo de como podes usar JavaScript para detectar se o usuário está usando o app ou um navegador:
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.");
}
Alternativamente, podes usar getAppPlatform
do script auxiliar do app, que funciona de maneira muito semelhante.
O app faz pequenas mudanças invisíveis no HTML do site que são necessárias para algumas funcionalidades do app. Também podemos usar essas mudanças para detectar se a página foi carregada pelo app.
Como isso é um pouco complicado, recomendamos que uses executeWhenAppReady
do script auxiliar do app.
Então podes colocar qualquer código dentro da função executeWhenAppReady
, e ele só será executado se a página foi carregada pelo app.
Uma pequena desvantagem desse método é que leva alguns milissegundos antes que o código seja executado, mesmo se a página foi carregada pelo app.
Na página de personalização do teu site, tens a opção de adicionar qualquer JavaScript ou CSS que o app deve injetar em cada página carregada. As possibilidades são infinitas com isso, mas como exemplo, vamos fazer este texto ficar verde no app:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Agora poderíamos configurar este JavaScript para injetar:
document.getElementById("red-text").style.color = "green";
Ou alternativamente, este CSS para injetar:
#red-text {
color: green !important;
}
Como podes ver, isso também funciona como uma maneira de ter comportamentos diferentes no site e no app.
Artigos Relacionados
Progressive Web Apps vs. Apps Nativas
Quer levar seu site para o próximo nível? Veja como os progressive web apps se comparam aos apps nativos padrão e transformar seu site em um app.
Publicamos 238 Apps - Veja Quanto Tempo Levou a Revisão dos Apps
Publicamos muitos apps e acompanhamos quanto tempo levou para colocá-los nas lojas de apps, incluindo tempos de rejeição e reenvio de apps.
Como: Usar o Preenchimento Automático de Senhas no Seu App
Salvar senhas e preenchimento automático torna o login mais conveniente para os usuários do seu app. Veja como funciona e quais configurações adicionais são necessárias.
Olá, eu sou Jan! Eu criei a webtoapp.design em 2019 enquanto estudava ciência da computação na universidade. Muita coisa mudou desde então - não só me formei, mas também não sou mais apenas eu que estou rodando a webtoapp.design. Nós crescemos para uma equipe global e totalmente remota e temos acumulado muita experiência em desenvolvimento e publicação de aplicativos. Nós criamos e publicamos centenas de aplicativos nas lojas de aplicativos, onde eles já foram baixados centenas de milhares de vezes.