13

我刚刚创建了一个应用程序和一个通行证,因此我可以将通行证添加到 iPod 中的 PassBook,但我无法通过电子邮件或来自 Web 服务器的链接共享通行证。从我从 Apple 阅读的文档中,我需要将 MIME 类型添加为application/vnd.apple.pkpass. 但是,我不清楚我应该做什么步骤。我不知道如何使用 MIME 类型。

我应该如何添加此 MIME 类型以使用来自我的 Web 服务的传递?

4

3 回答 3

15

阿帕奇

将以下行添加到其中一个:

  • .htaccess为您的 .pkpass 提供服务的目录中,或
  • mime.types文件,或
  • 到您的 appachehttpd.conf或 virtuatl 服务器.conf文件

然后重新启动 Apache(如果添加到,则不需要.htaccess

AddType application/vnd.apple.pkpass    pkpass

nginx

将以下行添加到您的mime.types文件中并重新启动 nginx

application/vnd.apple.pkpass    pkpass;

IIS

  1. 打开 IIS 管理器并导航到要管理的级别。
  2. 在功能视图中,双击 MIME 类型。
  3. 在“操作”窗格中,单击“添加”。
  4. 在添加 MIME 类型.pkpass
  5. application.vnd.pkpass在 MIME 文本框中键入n
  6. 点击确定
  7. 重新启动 IIS

如果您通过脚本提供文件并且无法编辑您的网络服务器配置,您可以在发送任何内容之前添加以下行:

PHP

header('Content-Type: application/vnd.apple.pkpass');

C#

WebClient client = new WebClient();
client.Headers.Add("Content-Type", "application/vnd.apple.pkpass");
于 2013-03-13T11:57:07.477 回答
1

对于纯 PHP 解决方案,将 .pkpass 包添加到服务器,然后创建以下文件并将此文件命名为 pass.php。

<?php   
$pkpass_file = '/path/to/your/.pkpass/file/GenericMemberCard.pkpass';

header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/vnd.apple.pkpass");
header('Content-Disposition: attachment; filename="pass.pkpass"');
clearstatcache();
$filesize = filesize($pkpass_file);
if ($filesize)
    header("Content-Length: ". $filesize);
header('Content-Transfer-Encoding: binary');
if (filemtime($pkpass_file)) {
    date_default_timezone_set("UTC");
    header('Last-Modified: ' . date("D, d M Y H:i:s", filemtime($pkpass_file)) . ' GMT');
}
flush();
readfile($pkpass_file);

然后创建第二个文件链接到您在上面创建的文件。

<a href="pass.php">Click to download your pass</a>
于 2013-03-14T02:45:23.143 回答
0

通过 Windows 10 IIS

  1. 打开 IIS 管理器并导航到要管理的级别。
  2. 在功能视图中,双击 MIME 类型。
  3. 在“操作”窗格中,单击“添加”。
  4. 在添加 MIME 类型.pkpass
  5. application.vnd.pkpass在 MIME 文本框中键入n
  6. 点击确定
  7. 重新启动 IIS
于 2021-10-20T07:25:57.347 回答