He probado como todo pero no funciona. Estoy creando un pase de billetera de Apple a través de https://github.com/walletpass/pass-js Cuando lo descargo en el servicio de nodo donde lo implementé, obtengo un pase válido y puedo cargarlo en la billetera. Pero cuando descargo el pase a través de mi aplicación de reacción, obtengo un búfer. Cuando decodifico ese búfer, obtengo (parece) el mismo contenido de datos como el del servidor. Pero cuando guardo esas cosas, el tamaño es de 113 kb y no es como el tamaño del pase que creé en el servidor de 65 kb y no es un archivo pkpass válido.
¿Quizás alguien también tenga ese problema?
Mi código de servidor:
return h .response(walletData) .type('application/vnd.apple.pkpass') .code(200)Mi código de reacción:
.get(`/appleWalletCard/${user.me._id}`) .then((response: any) => { if (response) { const file = new Blob([response.data]) console.log(file) const fileURL = URL.createObjectURL(file) const link = document.createElement('a') link.href = fileURL link.click() } })Aquí está la solución: debe establecer el tipo de respuesta en el búfer de matriz.
.get(`/appleWalletCard/${user.me._id}`, { responseType: 'arraybuffer' }