Estamos creando una aplicación web que a veces falla en Mobile Safari debido a un evento jetsam, donde el sistema operativo elimina el proceso debido al mal uso de la memoria. Creemos que tenemos un control sobre el error, pero algunas pruebas muestran que todavía sucede muy ocasionalmente, por lo que queremos crear un monitoreo para recopilar detalles sobre cuándo sucede. ¿Existe una forma confiable de detectar cuándo falla la pestaña que evite falsos positivos cuando la pestaña está cerrada? Mirando los registros del dispositivo en el evento jetsam, el PID del proceso web (que creo que es solo la pestaña afectada ya que las otras pestañas estaban bien) se elimina.
Nuestro plan actual era escuchar el cambio de visibilitychange y detectar pares de eventos hidden y visible , y luego contar las veces que solo vimos el evento visible como un "bloqueo de sesión". Sin embargo, Safari móvil no parece cumplir con la API de visibilidad de página cuando se cierra una pestaña del navegador. No pudimos ver un evento visibilitychange === hidden al cerrar la pestaña, lo que haría que ese escenario pareciera un bloqueo.
También consideré usar un Service Worker para enviar un latido, pero de manera similar no puedo pensar en cómo eliminar los falsos positivos de los cierres de pestañas normales.