Descargar Palabra .docx como archivo Blob de Angular en dispositivos móviles

0

Pregunta

Estoy tratando de descargar .archivo docx a partir de la API de REST (.NET Core FileContentResult) Angular de la aplicación. Todo está funcionando bien en la PC, pero no hay problema con la descarga .los archivos docx en VMware Workspace UN navegador Web (no intente estándar de los navegadores como Chrome o Safari, parece que no es sólo de Android WebView). La empresa es de aplicación y de este navegador es la única permitida.

El problema es sólo con .los archivos docx. Archivos como PDF, .doc y .xlsx (creado por ClosedXML) están trabajando bien.

La API de REST de la llamada (también probé con "arraybuffer' en lugar de 'blob' y creó objeto Blob en el cliente, pero el problema persiste).

this.httpClient.get(requestUrl, {
  responseType: 'blob',
  observe: 'response'
});

Entonces puedo guardar cuerpo de respuesta con FileSaver.

generateDocument(file: string | Blob, name: string): void {
  FileSaver.saveAs(file, name);
}
  • También traté de enfoque que crea el vínculo y haga clic en él (no trabajo).
  • Solución con el uso de la ventana.abierto(blobUrl) no está funcionando.

EDITAR:

  • Tengo información de que no está funcionando en iOS con el mismo navegador. A los usuarios a obtener el mensaje de error "el Enlace no es válido."

Alguien me puede ayudar con este problema? Gracias.

android angular blob docx
2021-11-23 17:22:43
1

Mejor respuesta

0

Si usted puede recuperar obtener un ArrayBufferesto podría ser usado para iniciar la descarga con los bytes:

Prueba aquí: https://batman.dev/static/70085191/

async function downloadUrl(url) {
  downloadBuffer(
    await (await fetch(url)).arrayBuffer()
  )
}

function downloadBuffer(arrayBuffer) {
  const a = document.createElement('a')
  a.href = URL.createObjectURL(new Blob(
    [ arrayBuffer ],
    { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }
  ))
  a.download = 'my-file.docx'
  a.click()
}

2021-11-26 19:43:03

Lo probé y no funcionó. El teléfono móvil no se puede abrir el documento.
Viktor 36

Intente la prueba de trabajo he añadido. Se descarga y se abre en mi Android Chrome teléfono.
AnthumChris

Funciona bien en Chrome, pero no en VMware Workspace UNA Web. Hice página de prueba con diferentes soluciones y probado en Chrome en Android y Safari en iOS. Todo está funcionando bien en estos navegadores.
Viktor 36

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................