Télécharger Word .docx en tant que fichier Blob Angulaires sur les appareils mobiles

0

La question

Je suis en train de télécharger .docx fichier à partir de l'API REST (.NET de Base FileContentResult) dans Angulaire de l'application. Tout fonctionne très bien sur PC, mais il y a un problème avec le téléchargement .les fichiers docx dans VMware Workspace UN navigateur Web (n'essayez pas standard des navigateurs comme google Chrome ou Safari, il semble qu'il y est juste WebView Android). C'est la société d'application et de ce navigateur est le seul autorisé.

Le problème est qu'avec .les fichiers docx. Les fichiers tels que PDF, .doc et .xlsx (créé par ClosedXML) fonctionnent très bien.

RESTE les appels de l'API (aussi essayé avec "arraybuffer" au lieu de "blob" et a créé objet Blob dans le client, mais le problème persiste)

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

Puis-je enregistrer le corps de la réponse avec FileSaver.

generateDocument(file: string | Blob, name: string): void {
  FileSaver.saveAs(file, name);
}
  • J'ai aussi essayé approche qui crée le lien et cliquez sur lui (il ne fonctionne pas).
  • Solution avec l'aide de la fenêtre.ouvert(blobUrl) ne fonctionne pas.

EDIT:

  • J'ai eu l'information qu'il ne fonctionne pas à tous les iOS avec le même navigateur. Les utilisateurs reçoivent un message d'erreur "le Lien n'est pas valide."

Quelqu'un peut m'aider avec ce problème? Merci.

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

La meilleure réponse

0

Si vous pouvez récupérer les obtenir un ArrayBuffercela pourrait être utilisé pour lancer le téléchargement avec ces octets:

Test ici: 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

J'ai essayé et ça ne fonctionne pas. Téléphone Mobile n'a pas pu ouvrir le document.
Viktor 36

Essayez de l'épreuve de travail ai-je ajouté. Il téléchargé et ouvert sur mon Android Chrome téléphone.
AnthumChris

Il fonctionne très bien sur Chrome, mais pas dans VMware Workspace Web. J'ai fait une page de test avec des solutions différentes et testé dans Chrome sur Android et Safari sur iOS. Tout fonctionne très bien dans ces navigateurs.
Viktor 36

Dans d'autres langues

Cette page est dans d'autres langues

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