Eu fiz algumas pesquisas e essa pergunta surgiu, mas não da maneira que pretendo. Estou criando uma página para um cliente que é um código QR, que é um local para baixar um aplicativo. Para que ele não precise imprimir 2 códigos QR em uma página, gostaria de detectar o sistema operacional atual (Apple / Android / Outro [não suportado]) e modificar meus elementos com base nesse valor.
Eu observei o script "detectmobilebrowsers" e que visa apenas determinar se o usuário é ou não móvel, enquanto eu gostaria de descobrir qual sistema operacional o usuário está executando e sugerir a melhor versão do aplicativo.
Outras respostas que achei semelhantes a essa pergunta pareciam desatualizadas ou não confiáveis (não tem detecção para navegadores de tablets Android), por isso estou procurando algo novo. Como posso conseguir isso? (De preferência, usando jQuery - Javascript - PHP nessa ordem).
fonte
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
, retornará verdadeiro apenas para agentes do usuário Android.Respostas:
Você pode testar a sequência do agente do usuário:
fonte
else if (userAgent.match(/Windows Phone/i)) { return 'WindowsPhone'; }
antes do Android mais se detectar o Windows Phone. Até agora parece estar funcionando bem.iOS
que precisamos para também verificar!window.MSStream
para evitar IE11 sendo contado comoiOS
;-)Solução 1: Sniffing do agente do usuário
Para Android e iPhone:
Se você deseja detectar todos os dispositivos móveis, incluindo blackberry e Windows phone, pode usar esta versão abrangente:
Contras : as sequências de agentes do usuário estão mudando e sendo atualizadas à medida que novos telefones e marcas estão chegando dia após dia. Então, você precisa manter esta lista atualizada se quiser suportar todos os dispositivos móveis.
Solução 2: biblioteca JS de detecção móvel
Você pode usar a biblioteca JS de detecção móvel para fazer isso.
Contras : esses recursos de detecção de dispositivos baseados em JavaScript podem funcionar APENAS para a mais nova geração de smartphones, como os dispositivos iPhone, Android e Palm WebOS. Esses recursos de detecção de dispositivo NÃO podem funcionar em smartphones mais antigos que não oferecem suporte a JavaScript, incluindo dispositivos BlackBerry, PalmOS e Windows Mobile mais antigos.
fonte
Pode-se usar navigator.platform para obter o sistema operacional no qual o navegador está instalado.
fonte
Este problema já foi resolvido aqui: Qual é a melhor maneira de detectar um dispositivo móvel no jQuery? .
Na resposta aceita, eles basicamente testam se é um iPhone, um iPod, um dispositivo Android ou o que quer que seja verdadeiro. Basta manter os que você deseja, por exemplo
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
, retornará verdadeiro apenas para agentes do usuário Android.No entanto, os user-agents não são realmente confiáveis, pois podem ser alterados. O melhor ainda é desenvolver algo universal para todas as plataformas móveis.
fonte
Você também pode conseguir isso com o user agent no php:
}
fonte
Se você estiver usando o React Js no seu site, use https://www.npmjs.com/package/react-device-detect
fonte
Você também pode criar links dinâmicos do Firbase que funcionarão conforme sua exigência. Ele suporta múltiplas plataformas. Este link pode ser criado, tanto manualmente quanto via programação. Você pode incorporar esse link no código QR.
Se o aplicativo de destino estiver instalado, o link redirecionará o usuário para o aplicativo. Se não estiver instalado, ele será redirecionado para a Play Store / App Store / Qualquer outro site configurado.
fonte
Para este e outros tipos de detecção de clientes, sugiro esta biblioteca js: http://hictech.github.io/navJs/tester/index.html
Para sua resposta específica, use:
fonte
Usando o cordova-device-plugin, você pode detectar
será "Android" para Android e "Windows" para Windows. Funciona no dispositivo e ao simular no navegador. Aqui está um brinde que exibirá os valores do dispositivo:
fonte