Creo que encontramos una regresión en iOS 13.2 / 13.3 con respecto a los PWA que se ejecutan en modo independiente.
Como en iOS PWA no puede acceder a getUserMedia (), confiamos en el atributo de captura en la etiqueta de entrada HTML5 para permitir que el usuario tome una foto y la envíe a un servidor.
Nuestro código se ve así:
<div class="camera-upload">
<input type="file" class="hidden" name="uploadPhotoInput" accept="image/*" capture="environment" (change)="onTakePhoto($event)">
<button type="button" class="btn btn-primary">Take photo</button>
</div>
Cuando ejecutamos el PWA en modo independiente en dispositivos con iOS 13.1 o inferior, todo funciona como se esperaba. Si ejecutamos el PWA en modo navegador en Safari, todo funciona independientemente de la versión de iOS.
Cuando ejecutamos el PWA en dispositivos con iOS 13.2 o 13.3, la función funciona hasta que ponemos el PWA en segundo plano y luego en primer plano nuevamente. Después de que el PWA se envía al fondo, la captura inicia la cámara, pero la vista previa es completamente negra. Todos los controles de la cámara (flash, etc.) funcionan, pero no se toma ninguna foto.
Ejecutamos una prueba con el registrador de consola XCode conectado y parece que AVCaptureSession no se puede iniciar después de que la aplicación se haya puesto en segundo plano una vez.
Aquí hay un rastro de los registros del dispositivo:
Estamos construyendo nuestra PWA con Angular 8.
¿Alguien ha visto algo como esto o puede darnos una pista?