Tengo una aplicación web con una entrada de carga de archivos para videos grandes (más de 30 minutos). En iOS, cuando el usuario selecciona un video, el sistema operativo primero lo comprime, una acción que ocurre antes de que se llame al onClick de la entrada del archivo.
Como este proceso puede tomar un tiempo para videos grandes, los usuarios tienden a cambiar a otras aplicaciones mientras tanto, pero parece que cuando un usuario sale de la pantalla de compresión, la acción se cancela, sin siquiera notificar al usuario.
Este es el fragmento de entrada del archivo (estoy usando reaccionar).
<input required={true} id="inputFile" type="file" accept="video/*" ref={fileInput} className={style['input']} onChange={(e) => { const file = e.target.files[0]; if(file) { setValue(fieldName, file) }} />El comportamiento es el mismo tanto en iOS Chrome como en Safari.
¿Hay alguna manera de hacer que la acción continúe cuando el navegador ya no está activo?
No es posible continuar una acción en segundo plano cuando el navegador no está activo. La única forma de hacerlo sería usar una aplicación nativa en lugar de una aplicación web. La documentación de File API en dispositivos móviles indica que https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications estará "más limitada" en dispositivos móviles.
La única forma de continuar una acción en segundo plano cuando el navegador no está activo sería usar una aplicación nativa en lugar de una aplicación web.