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

194
Views
Cómo detectar versiones anteriores de iOS y evitar que se cargue un script

Nuestra empresa decidió recientemente dejar de admitir iOS 12.3 y versiones anteriores. Sin embargo, una pequeña fracción de los usuarios todavía está en dispositivos más antiguos que no admiten la sintaxis o los operadores de JavaScript más nuevos.

Para evitar que nuestra secuencia de comandos afecte a estos usuarios, estamos buscando formas de evitar que nuestra secuencia de comandos se cargue si se detecta iOS v12.3 o inferior.

Nuestro código JS se carga en los sitios web de los clientes a través de etiquetas de script como esta:

 <script src="exampledomain.com/example.js"></script>

Nuestra primera idea fue detectar el agente de usuario como esta publicación , pero hay algunos problemas con este enfoque.

  • Se desaconseja encarecidamente por varias razones descritas aquí .

  • Detectar el agente de usuario dentro de nuestro script significa que todavía se carga y arroja errores cuando iOS <12.3 encuentra una sintaxis que no puede manejar.

  • Detectar el agente de usuario usando javascript condicional en los sitios web de nuestros clientes antes de cargar nuestro script es una posibilidad pero difícil de mantener y no ideal para nuestros clientes.

Otra opción es apuntar el src de nuestro elemento de secuencia de comandos a una secuencia de comandos que pueda detectar la UA y servir diferentes versiones de nuestra secuencia de comandos. Sin embargo, nuestro script es sensible al tiempo y el tiempo adicional que lleva hacer 2 solicitudes en lugar de 1 es algo que nos gustaría evitar.

Por último, también es posible detectar versiones de iOS sin usar el agente de usuario al seleccionar específicamente funciones que no son compatibles. Por ejemplo, el uso del operador coalescente nulo (??) en una declaración de captura de prueba podría indicar que el dispositivo está por debajo de iOS 12.3. Pero este método también se basa en ejecutar JavaScript directamente en el sitio web del cliente o realizar varias solicitudes.

Me gustaría saber si hay métodos alternativos que no hemos considerado. Gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Este código cortado detecta la versión de iOS, por lo que puede administrar los scripts desde el backend:

 function getIOSVersion() { const ua = navigator.userAgent; if (/(iPhone|iPod|iPad)/i.test(ua)) { return ua.match(/OS [\d_]+/i)[0].substr(3).split('_').map(n => parseInt(n)); } return [0]; }

Si no desea utilizar UserAgent, puede utilizar la información de la plataforma en la que se compila el navegador:

 function getIOSVersion() { const ua = navigator.platform; if (/(iPhone|iPod|iPad)/i.test(ua)) { return ua.match(/OS [\d_]+/i)[0].substr(3).split('_').map(n => parseInt(n)); } return [0];

}

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!