Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

182
Visualizações
Agregar a la detección de funciones de la pantalla de inicio (A2HS) (sin detección de agente de usuario)

Tengo un PWA donde a los usuarios de Android se les pide que agreguen el PWA a su pantalla de inicio, pero también me gustaría mostrar una información sobre herramientas para los usuarios de Safari en iOS que muestran cómo agregar el PWA a su pantalla de inicio, ya que no es una función compatible para ellos. .

Estaba pensando en usar la detección de funciones, pero no puedo encontrar la manera de hacerlo, algo como:

 if ("a2hs" in navigator) { // Do something for browsers supporting A2HS feature } else { // Show the tooltip if the browser does not support A2HS }

También pensé que podría usar algo como esto:

 const isIos = () => { return window.navigator.vendor === 'Apple Computer, Inc.'; };

pero esto también vuelve a ser true para los usuarios de Chrome en iOS :(

¿Alguna idea de cómo puedo detectar si un usuario está usando Safari en iOS?

Nota: También quiero evitar el uso de la detección de agente de usuario . Creo que leí casi todos los temas relacionados con este tema en SO, pero hasta ahora no pude encontrar ninguna solución que no use el olfateo del agente de usuario.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

una solución parcial:

 if('BeforeInstallPromptEvent' in window) alert('Chrome-style PWA install experience supported!'); if('standalone' in navigator) // only available on iOS - but also on alternative browsers on iOS without Add-to-Homescreen support alert('iOS Safari-style PWA Add-to-Homescreen maybe supported!');

Problemas abiertos:

  • evite los falsos positivos en iOS: si pudiera aceptar usar el agente de usuario para eso, podría usar navigator.userAgent.match(/(iOS|OPT|Brave|GSA|DuckDuckGo|Snapchat)\//) para detectar la mayoría de los navegadores alternativos; Para una explicación: iOS en la expresión regular debe detectar CriOS|FxiOS|EdgiOS|OPiOS (Chrome/Firefox/Edge/Opera mini); ¿Alguien tiene una forma de detectar navegadores alternativos en iOS sin usar el agente de usuario?
  • no detecta Firefox en Android; y no sé si otros navegadores basados en Firefox para Android admiten PWA (por ejemplo, QuantMobile, PrivacyWall, Fennec, KAIOS, todos los tokens que aparecen junto con Firefox y Android en la cadena de agente de usuario)

Adición (no probada y poco confiable): investigué un poco más:

  • Una señal segura de que está en una vista web en iOS es (¿o era?) que navigator.mediaDevices.getUserMedia o tal vez navigator.mediaDevices no está definido. Pero también leí que Apple lo implementó hace algunos meses, por lo que habrá vistas web para las que esto no sea cierto.
  • Otra pista podría ser que si navigator.doNotTrack no está definido, podría significar que está en una vista web (o que Apple decidió eliminar esta propiedad obsoleta de Safari...)
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda