2011-12-07 11 views
1

私は追跡ツールを開発していますが、iPhoneにURLリダイレクト経由で連絡先カードをダウンロードさせる方法が分かっていますか? iPhoneはウェブから連絡先カードをダウンロードしません。誰かがこれを回避する手段を見つけましたか?ほとんどの携帯電話では、vcardなどのファイルにリダイレクトして、正しいhttpヘッダーを使用して電話をダウンロードしてダウンロードすることができます。 iPhoneはvcardのダウンロードを許可していないので、Webブラウザを介してvcardをiPhoneにどのように送れますか?URLリダイレクト経由で連絡先カードをダウンロードするにはどうすればいいですか

答えて

1

.telサイトにリダイレクトできます。例えば、私のQRコードは、http://edent.tel/

にiPhoneを

をリダイレクトや、あなたがドットテルを購入したくない場合、あなたは「クリックでする電話番号が含まれているシンプルなウェブサイトを作成することができますコールする "リンク。

<a href=”tel:123456798″>Call me on 123456789</a> 
2

私は多分そこにあるモバイルサファリで

http://mobicontact.info/iphone/download-contact-from-web-page/

を扱っているカレンダーファイルへの添付ファイルとして連絡先ファイルを添付する方法について説明します私のブログ上の代替ソリューションを公開していますここで働くことができるものリダイレクトの問題を具体的に解決するわけではありませんが、カレンダーアプリを使用した後に直接連絡先を開くことができます。

ブログでは、ソースコードやプロセス全体のイメージを含む完全なソリューションが表示されています。これは、Stack Overflowでここに書き込めるものよりもはるかに読みやすく、多くのフォーラム間で重複を防止しようとしていました。注意すべき主な点は、アップルが使用することです。

ATTACH;VALUE=BINARY;ENCODING=BASE64;FMTTYPE=text/directory; 
X-APPLE-FILENAME=iPhone Contact.vcf: 
QkVHSU46VkNBUkQNClZFUlNJT046M…etc… [base64 encoded VCARD] 

VCALENDARファイルに埋め込みVCARD用です。 VCALENDARファイルを作成し、その中にVCARDをbase64でエンコードします - 下のコードスニペット(私のブログの詳細)

<?php 
# Send correct headers  
header("Content-type: text/x-vcalendar; charset=utf-8"); 
# Alternatively: application/octet-stream 
# Depending on the desired browser behaviour 
# Be sure to test thoroughly cross-browser 

header("Content-Disposition: attachment; filename=\"iphonecontact.ics\";"); 
# Output file contents - simple version 
#echo file_get_contents("iphonecontact.ics"); 

# Generate file contents - advanced version 
# BEGIN:VCALENDAR 
# VERSION:2.0 
# BEGIN:VEVENT 
# DTSTART;TZID=Europe/London:20120617T090000 
# DTEND;TZID=Europe/London:20120617T100000 
# SUMMARY:iPhone Contact 
# DTSTAMP:20120617T080516Z 
# ATTACH;VALUE=BINARY;ENCODING=BASE64;FMTTYPE=text/directory; 
# X-APPLE-FILENAME=iphonecontact.vcf: 
# QkVHSU46VkNBUkQNClZFUlNJT046My4wDQpOOkNvbnRhY3Q7aVBob25lOzs7DQpGTjppUGhvbm 
# UgQ29udGFjdA0KRU1BSUw7VFlQRT1JTlRFUk5FVDtUWVBFPVdPUks6aXBob25lQHRoZXNpbGlj 
# b25nbG9iZS5jb20NClRFTDtUWVBFPUNFTEw7VFlQRT1WT0lDRTtUWVBFPXByZWY6KzQ0MTIzND 
# U2Nzg5MA0KRU5EOlZDQVJE 
# END:VEVENT 
# END:VCALENDAR 

echo "BEGIN:VCALENDAR\n"; 
echo "VERSION:2.0\n"; 
echo "BEGIN:VEVENT\n"; 
echo "SUMMARY:Click attached contact below to save to your contacts\n"; 
$dtstart = date("Ymd")."T".date("Hi")."00"; 
echo "DTSTART;TZID=Europe/London:".$dtstart."\n"; 
$dtend = date("Ymd")."T".date("Hi")."01"; 
echo "DTEND;TZID=Europe/London:".$dtend."\n"; 
echo "DTSTAMP:".$dtstart."Z\n"; 
echo "ATTACH;VALUE=BINARY;ENCODING=BASE64;FMTTYPE=text/directory;\n"; 
echo " X-APPLE-FILENAME=iphonecontact.vcf:\n"; 
$vcard = file_get_contents("iphonecontact.vcf");  # read the file into memory 
$b64vcard = base64_encode($vcard);      # base64 encode it so that it can be used as an attachemnt to the "dummy" calendar appointment 
$b64mline = chunk_split($b64vcard,74,"\n");    # chunk the single long line of b64 text in accordance with RFC2045 (and the exact line length determined from the original .ics file exported from Apple calendar 
$b64final = preg_replace('/(.+)/', ' $1', $b64mline); # need to indent all the lines by 1 space for the iphone (yes really?!!) 
echo $b64final;           # output the correctly formatted encoded text 
echo "END:VEVENT\n"; 
echo "END:VCALENDAR\n"; 
?> 
関連する問題