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?
fuente
Respuestas:
@elbuild
https://bugs.webkit.org/show_bug.cgi?id=206219
El error fue publicado aquí. Siéntase libre de contribuir a publicar también para ganar tracción, haré lo mismo
fuente
Errr ... no. 13.4 todavía lo hace, lo siento.
Solo les digo a los usuarios que si obtienen esto, deben mover la aplicación para cerrarla (en lugar de ir a casa). Una solución alternativa deficiente, pero espero que algún día llegue una solución real.
fuente
Finalmente, esto se resolvió en iOS13.4
fuente