2013-03-13 22 views
6

我只是創建一個應用程序和通行證,所以我可以在iPod中添加傳遞給存摺。但我無法通過電子郵件或網絡服務器分享通過。通過我從蘋果公司讀取的文件,我需要將MIME類型添加爲application/vnd.apple.pkpass。但是,我不明白我應該採取的措施。我不怎麼使用MIME類型。我不知道該怎麼做。因此,你知道如何添加這個MIME類型以便使用來自Web服務的傳遞嗎?如何設置MIME類型的應用程序/ vnd.apple.pkpass以共享通過鏈接或電子郵件

+0

(Apache時,Nginx的,IIS?)您使用(PHP,C#?)什麼語言 – PassKit 2013-03-13 11:47:22

+0

服務器是Apache和我使用PHP語言。 – malinchhan 2013-03-13 14:27:49

+0

您試過以下哪種解決方案? – PassKit 2013-03-14 02:35:57

回答

9

阿帕奇

添加以下行之一:

  • 在目錄中.htaccess服務你.pkpass,或
  • mime.types文件,或
  • 您appache httpd.conf或virtuatl服務器.conf文件

然後重新啓動Apache

AddType application/vnd.apple.pkpass pkpass 

nginx的

以下行添加到您的mime.types文件並重新啓動nginx的(如果增加.htaccess不要求)

application/vnd.apple.pkpass pkpass; 

IIS

  1. 打開IIS管理器,然後導航至要管理的級別。
  2. 在功能視圖中,雙擊MIME類型。
  3. 在「操作」窗格中,單擊「添加」。
  4. 在添加MIME類型.pkpass
  5. 類型application.vnd.pkpass n中的MIME文本框中
  6. 單擊確定
  7. 重新啓動IIS

如果您是通過一個腳本服務您的文件,並且不能夠編輯您的Web服務器配置,您可以在發送任何內容之前添加以下行:

PHP

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

C#

WebClient client = new WebClient(); 
client.Headers.Add("Content-Type", "application/vnd.apple.pkpass"); 
+0

我確實喜歡你已經寫過以上內容,這是我的php文件的內容:<?php header('Content-type:application/vnd.apple.pkpass'); \t echo「 Click me to add pass」; ?>是否這樣測試? – malinchhan 2013-03-14 02:40:17

+0

請參閱我的純PHP解決方案的替代答案 – PassKit 2013-03-14 02:45:44

+0

哇,現在它的作品!非常感謝你 ! – malinchhan 2013-03-14 02:45:53

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> 
您正在使用什麼服務器
+0

我正在嘗試完全相同的事情,但由於某種原因,它始終顯示「safari無法下載」在我的iphone 4s和6中。如果你可以幫助我,這將是非常好的 - 我一直在嘗試,因爲最後1天我有一個迫切的要求。 – 2014-11-19 11:30:58

+0

最有可能您的簽名文件不正確,但它也可能是您的pass.json問題。從手機的開發者菜單中打開附加存摺日誌,將手機連接到Xcode,並在嘗試加載通行證時查看控制檯輸出。這應該讓你瞭解發生了什麼問題。 – PassKit 2014-11-21 10:38:48

相關問題