2

我已经尝试了一切,但它不起作用。我正在通过https://github.com/walletpass/pass-js创建一个苹果钱包通行证 当我将它下载到我已经实现它的节点服务上时,我得到了一个有效的通行证并且可以将它加载到钱包中。但是当我通过我的反应应用程序下载通行证时,我得到了一个缓冲区。解码该缓冲区时,我从服务器获取(看起来)相同的数据内容。但是当我保存这些东西时,大小是 113kb,不像我在服务器上创建的通行证的大小 65kb 并且它没有有效的 pkpass 文件。

也许有人也有这个问题?

我的服务器代码:

   return h
     .response(walletData)
     .type('application/vnd.apple.pkpass')
     .code(200)

我的反应代码:

      .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()
        }
      })
4

1 回答 1

-1

这是解决方案:您必须将 responseType 设置为数组缓冲区。

.get(`/appleWalletCard/${user.me._id}`, {
        responseType: 'arraybuffer'
      }
于 2021-10-04T16:10:03.793 回答