在反应中从服务器下载并打开 pkpass

Download and open pkpass from server in react

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

也许有人也有这个问题?

我的服务器代码:

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

我的 React 代码:

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

解决方法如下:您必须将 responseType 设置为数组缓冲区。

.get(`/appleWalletCard/${user.me._id}`, {
        responseType: 'arraybuffer'
      }