Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

173
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!