Estoy tratando de hacer que esto funcione, quiero poder descargar un archivo de un sitio web, estoy usando un paquete NPM llamado file-saver y también probé una solución en una de las respuestas aquí, sí, funciona pero el problema ¿No funciona en Chrome iOS, por alguna razón alguien descubrió cuál podría ser la solución a esto? ¿Es que Chrome es tan estricto que no te permite descargar nada?
const saveLocalStorage = () => { // Grap the whole ls object and save const ls = JSON.stringify(localStorage); // Using file Saver NPM //FileSaver.saveAs(new Blob([ls]), 'Plan.Online', { autoBom: true }); const downloadBlob = (fileName: string, blob: any) => { const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.target = '_blank'; link.download = fileName; document.body.appendChild(link); link.click(); }; const blob = new Blob([ls], { type: 'text', }); downloadBlob('Data.txt', blob); };Si su aplicación funciona en iOS Safari, pero no en el navegador iOS Chrome, el problema puede ser cómo Apple configuró Chrome.
Google Chrome ahora está disponible para iPhone y iPad, pero antes de que te emociones demasiado, debes darte cuenta de que no es Chrome en absoluto. Es el Safari de Apple con una interfaz 'cromada'. El navegador real, el motor de renderizado y javascript es 100% Apple Safari.
La razón es simple. Apple quiere controlar y obligar a las personas a crear aplicaciones nativas y, por lo tanto, limita el rendimiento de las aplicaciones web en aplicaciones de terceros. ... Este es un comportamiento puramente anticompetidor que limita las opciones y obliga a las personas a crear aplicaciones nativas.
Cuando escribo aplicaciones web progresivas (PWA), tengo que decirles a mis usuarios que deben usar el navegador nativo del sistema operativo. Android=Cromo, iOS=Safari. Período. Sin sustitutos. Apple claramente no quiere la funcionalidad de código de navegador universal.
Nota: sé que la referencia anterior es bastante antigua. Pero, que yo sepa, la esencia de los hechos sigue en pie. Nota: llego a esto desde la perspectiva del desarrollo de aplicaciones web progresivas. La única característica en la que realmente confío es la capacidad de "Guardar enlace a la página de inicio". Y eso simplemente no está disponible en Chrome en iOS, incluso ahora. No estoy seguro de tener exactamente el mismo caso de uso.
¡Encontré que esta discusión puede estar relacionada! un ingeniero de Chrome dice: "Ah, eso es porque Chrome en iOS aún no ha adoptado los nuevos métodos de delegado de WKDownload, pero actualmente se está trabajando en esto (ver crbug.com/1252380)"