Publicado em 21. março 2024 por Jan Bunk
Há muitos casos em que pode ser útil diferenciar entre uma pessoa que está visualizando o seu site no navegador e uma pessoa que o está visualizando por meio do seu aplicativo. Talvez você queira ver a análise de como seu aplicativo está sendo adotado pelos usuários ou queira mostrar um conteúdo diferente para os usuários do aplicativo.
Assim como há vários casos de uso, também há várias maneiras de atingir esse objetivo. Vamos examiná-las uma a uma.
O agente do usuário é uma cadeia de caracteres curta que o navegador envia aos sites sempre que está carregando uma página. O agente do usuário contém informações sobre o navegador, por exemplo, um navegador Firefox poderia enviar algo como este agente do usuário:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Com isso, seu site pode detectar que o usuário está usando a versão 47.0 do navegador Mozilla Firefox. Assim como os navegadores, seu aplicativo também envia um agente de usuário 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
Portanto, um exemplo de agente de usuário que o aplicativo 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 do agente do usuário acima, você pode detectar que seu site está sendo carregado pelo aplicativo verificando se o agente do usuário contém "App-WebView". Se quiser verificar também o sistema operacional, você pode verificar adicionalmente se o agente do usuário também contém "(android)" ou "(ios)".
Se você estiver usando o WordPress, poderá usar o plug-in "UserAgent Content Switcher". O nome do plug-in é bastante descritivo: ele permite que você mostre conteúdo diferente aos usuários com base no agente do usuário. Veja a seguir como você pode configurá-lo (e um exemplo de caso de uso):
Esse texto fica visível para todos.
[agentsw ua='app']
Esse texto é visível apenas para os usuários do aplicativo!
[/agentsw]
É claro que você pode verificar o agente do usuário não apenas no lado do servidor (conforme detalhado na seção anterior), mas também no JavaScript.
Aqui está um exemplo de como você pode usar o JavaScript para detectar se o usuário está usando o aplicativo 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.");
}
Como alternativa, você pode usar getAppPlatform
do script auxiliar do aplicativo, que funciona de forma muito semelhante.
O aplicativo faz pequenas alterações invisíveis no HTML do site que são necessárias para alguns recursos do aplicativo. Também podemos usar essas alterações para detectar se a página foi carregada pelo aplicativo.
Como isso é um pouco complicado, recomendamos que você use executeWhenAppReady
no script auxiliar do aplicativo.
Em seguida, você pode colocar qualquer código dentro da função executeWhenAppReady
, e ele só será executado se a página tiver sido carregada pelo aplicativo.
Uma pequena desvantagem desse método é que são necessários alguns milissegundos para que o código seja executado, mesmo que a página tenha sido carregada pelo aplicativo.
Na página de personalização do site, você tem a opção de adicionar qualquer JavaScript ou CSS que o aplicativo deva injetar em cada página carregada. As possibilidades são infinitas, mas, como exemplo, vamos deixar esse texto verde no aplicativo:
<p id="red-text" style="color: red;">This text is red in the browser.</p>
Agora, podemos configurar esse JavaScript para injetar:
document.getElementById("red-text").style.color = "green";
Ou, alternativamente, esse CSS para injetar:
#red-text {
color: green !important;
}
Portanto, como você pode ver, isso também funciona como uma forma de ter um comportamento diferente no site e no aplicativo.
Artigos Relacionados
Aplicativos Web progressivos versus aplicativos nativos
Você quer levar seu site para o próximo nível? Veja como os aplicativos progressivos da Web se comparam aos aplicativos nativos padrão e como você pode transformar seu site em um aplicativo.
Converta seu site em um aplicativo
Converta seu site em um aplicativo para tirar vantagem das notificações push, melhor conhecimento da marca e muito mais. Sem código.
Diferenças entre os aplicativos Android e iOS
Neste artigo nós discutimos os benefícios que os aplicativos Android têm sobre os aplicativos iOS e, neste caso, um aplicativo iOS para o seu site é a melhor opção.
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.