【问题标题】:Safari is throwing a error while downloading .pkpassSafari 在下载 .pkpass 时抛出错误
【发布时间】:2021-09-23 19:07:48
【问题描述】:

我有一个带有 node.js 后端的网络服务器,它构建了一个 .pkpass 文件(经过认证,一切正常)。

在 pass.json webServiceURL = 'addressToBackEndpoint' 中用于通过更新和 authenticationToken(只是随机的 32 个字母)。

当我尝试将生成的通行证安装到 walletpasses(在 android 上)时,它工作得很好,没有错误。但是从 iPhone 上的相同 URL 下载相同的通行证会给我带来 safari 的错误

Download Failed - Safari cannot download this file.

没有日志,无法找出问题所在。 PkPassValidator 表示本次通行证没有发现问题。

有什么想法有什么问题以及如何使其发挥作用吗?

【问题讨论】:

    标签: node.js passbook


    【解决方案1】:

    您是否将标头设置为下载请求。我遇到了与设置请求标头相同的错误。这是相同的 PHP 代码,但问题似乎相同

        $response->headers->set('Content-Description',' File Transfer');
        $response->headers->set('Content-Disposition',' attachment; filename=' . $quoted);
        $response->headers->set('Content-Transfer-Encoding',' binary');
        $response->headers->set('Connection',' Keep-Alive');
        $response->headers->set('Expires',' 0');
        $response->headers->set('Cache-Control',' must-revalidate, post-check=0, pre-check=0');
        $response->headers->set('Pragma',' public');
        $response->headers->set('Content-Length', $size);
        $response->headers->set('Content-Type', mime_content_type($filename));
        $response->setContent($content);
    

    【讨论】:

    • 我只指定了一种文件类型。(vnd.apple.pkpass) 将尝试使用此列表,谢谢!
    • 是的,我希望这会奏效
    • 不幸的是,这没有帮助 =(
    【解决方案2】:

    已解决:

    仔细查看 pass.json 后,发现 url 中的 'o' 字母(被复制并粘贴到 pass.json 中)是另一种编码(虽然看起来很相似)

    为了确保一切正常,您可以使用一些编码验证器。

    提示:苹果最好不要玩彩票,而是从 mac os 安装 iOS 模拟器(在我的情况下是 VMWare 中的 Mac OS),然后使用 MAC 控制台(不是手机)启动模拟器,然后搜索“在连接的设备上传递'日志

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 2017-03-18
      相关资源
      最近更新 更多