2009-11-20 23 views
24

डेस्कटॉप मैक दुनिया में, यदि मैं किसी वेब पेज में किसी लिंक पर क्लिक करना चाहता हूं जो वीसीएफ फ़ाइल से जुड़ा हुआ है, तो यह फ़ाइल पता पुस्तिका एप्लिकेशन में खोली जाएगी। आईफोन की दुनिया में, हालांकि, संदेश में परिणाम "असफल रहा। सफारी इस फ़ाइल को डाउनलोड नहीं कर सकता" प्रदर्शित किया जा रहा है। तो, मेरा सवाल यह है कि, क्या वास्तव में वेब पेज से आपके आईफोन की एड्रेस बुक में संपर्क जोड़ना संभव है?किसी वेब पेज से आईफोन की एड्रेस बुक में संपर्क कैसे जोड़ें?

मेरे पास मूल वीसीएफ फ़ाइल और मेरे लिए उपलब्ध डेटा का एक एचकार्ड माइक्रोफॉर्मेटेड संस्करण दोनों है, इसलिए समाधान को मूल फ़ाइल डाउनलोड करने के लिए बाध्य नहीं होना चाहिए - यदि आवश्यक हो तो मैं डेटा को पुन: संसाधित करने में सक्षम हूं। मोबाइल सफारी के भीतर से देखे जा रहे वेबपृष्ठ से आईफोन की एड्रेस बुक में संपर्क जोड़ना एकमात्र आवश्यकता है।

तो, कोई विचार?

उत्तर

9

जबकि थोड़ा अपने मूल आवश्यकताओं के दायरे से बाहर है, मैं समस्या यह है कि मैं के साथ काम कर सकते हैं के लिए एक समाधान मिल गया है।

जैसा कि यह पता चला है, अगर आपको एक अटैचमेंट के रूप में वीकार्ड के साथ एक ईमेल प्राप्त होता है, तो आप इस अनुलग्नक को खोलने और इसे अपनी पता पुस्तिका में जोड़ने में सक्षम हैं। इसलिए, यदि आईफोन उपयोगकर्ताओं को वीकार्ड डाउनलोड लिंक देने की बजाय आप उन्हें वीकार्ड को ईमेल के माध्यम से भेजने के लिए एक तरीका प्रदान करते हैं तो वे कार्ड को अपनी एड्रेस बुक में जोड़ सकते हैं।

एक थोड़ा चौराहे समाधान, लेकिन सबसे अच्छा मैं इसके साथ आने में सक्षम हूं जबकि ऐप्पल आपको इसे मूल रूप से करने की अनुमति नहीं देता है। निश्चित रूप से यह कुछ भी करने से बेहतर समाधान है।

मैं इस बारे में एक ब्लॉग पोस्ट लिख समाप्त हो गया: Adding a vCard to your iPhone Address Book from a web page

+2

यदि लिंक मर जाता है तो क्या होगा? तो यह उत्तर किसी और के लिए उपयोगी नहीं होगा।कृपया यहां प्रासंगिक भाग शामिल करें। –

+0

क्या आप वीसीएआर को अनुलग्नक के रूप में ईमेल करने के लिए PHP कोड पोस्ट करना चाहते हैं? – donturner

1

संदर्भ पुस्तकालय के अनुसार आईफोन की पता पुस्तिका में संपर्क जोड़ना संभव नहीं है .. उपलब्ध योजनाएं हैं: मेल, फोन, टेक्स्ट, मानचित्र, यूट्यूब और आईट्यून्स लिंक।

Iphone URL Scheme Reference

16

[अपडेट - सितम्बर 2013 - iOS7 अब देशी संपर्क अनुप्रयोग में हम पेज और आयात से vCards की प्रत्यक्ष डाउनलोड का समर्थन करता है ताकि आप केवल जबकि iOS6 नीचे समाधान की जरूरत है और नीचे अभी भी इसका समर्थन नहीं करते हैं - जो भविष्य में बदल सकता है कि ऐप्पल ने फीचर स्वीकार कर लिया है]

[अद्यतन जेन 2013 - अब उपयोगकर्ता एजेंट को स्नीफिंग और एक डाउनलोड.एफ़.पी. फ़ाइल में जोड़ा गया है जो आईओएस का पता लगाता है, "सफी लोड बाधित" त्रुटियों को रोकने के लिए मोबाइल सफारी, UiWebView परिदृश्य और .vcf फ़ाइल को सभी एप्पल डिवाइसों पर सेवा प्रदान करता है जो .ics में एम्बेडेड .vcf प्राप्त करते हैं।]

See the updated complete solution

क्या इस प्रकार मोबाइल सफारी के माध्यम से एक iPhone करने के लिए एक वेब पेज से संपर्कों को डाउनलोड करना के लिए एक वैकल्पिक पद्धति का पूरा विवरण है। बुनियादी विचार है कि आवश्यक संपर्क जानकारी को एक कैलेंडर ईवेंट में फ़ाइल के रूप में संलग्न करना है जिसे मोबाइल सफारी द्वारा संभाला जाता है। संपर्क फ़ाइल स्वयं एक साधारण PHP स्क्रिप्ट का उपयोग कर फ्लाई पर कैलेंडर फ़ाइल में एन्कोडेड बेस 64 है। तो पर पढ़ें ...

Basic layout of embedded VCARD in VCALENDAR file

बस स्रोत कोड चाहते हैं? एक पूरी तरह से काम कर रहे एचटीएमएल 5 वेब ऐप के लिए इसे यहां [iphone-contact-download-demo] डाउनलोड करें, जिसे आप प्रतिलिपि बनाने और पुन: पेश करने के लिए स्वतंत्र हैं या http://iphone.mobicontact.info पर काम करने वाले डेमो के लिए जा सकते हैं। डेमो एचटीएमएल 5 कैश मैनिफेस्ट का उपयोग करता है जो ऑफ़लाइन होने पर आपके आईफोन या एचटीएमएल 5 सहायक ब्राउजर को सामग्री डाउनलोड करता है। यदि आप और जानना चाहते हैं तो कृपया "ऑफ़लाइन वेब ऐप्स" के बारे में अधिक जानकारी के लिए Google पर जाएं।

आईफोन डाउनलोड के लिए VCALENDAR में एंबेडेड वीसीएडी आपने पढ़ा होगा कि मोबाइल सफारी का उपयोग कर वेब पेज से सीधे अपने आईफोन पर संपर्क फाइलें (वीसीएआर प्रारूप डेटा के रूप में। वीसीएफ फ़ाइल) डाउनलोड करना संभव नहीं है। ब्राउजर सिर्फ .vcf एक्सटेंशन और माइम प्रकार (टेक्स्ट/एक्स-वीकार्ड) को पहचानने के लिए कुछ नहीं पहचानता है। एक तरफ, एंड्रॉइड और अधिकांश अन्य मोबाइल डिवाइस आसानी से वीसीएआर फाइलों को संभालने में सक्षम होना चाहिए - मानक खुद ही पहाड़ियों के रूप में पुराना है!

आपने यह भी पढ़ा होगा कि उपयोगकर्ताओं के ईमेल पते का अनुरोध करके कुछ काम करने योग्य हासिल करना संभव है और फिर उन्हें संपर्क फ़ाइल ईमेल करें या Google मानचित्र प्रविष्टि के लिए एक लिंक बनाएं और उस से संपर्क जानकारी निकालें (Google मानचित्र प्रविष्टि ब्रिटेन में प्राप्त होने के लिए सप्ताहों की आवश्यकता है)।

जबकि ये दोनों व्यवहार्य समाधान हैं, वे नहीं हैं जो मैं उपयोगकर्ता के अनुकूल कहूंगा और मैंने कोशिश की, असफल रूप से, मेरे एक ग्राहक को मोबाइल वेब ऐप पर उनके संपर्क डाउनलोड के लिए स्वीकार करने के लिए।

अब इस बिंदु पर मुझे यह भी जिक्र करना चाहिए कि आप कुछ तृतीय पक्ष ऐप्स डाउनलोड कर सकते हैं जो VCARD (.vcf) फ़ाइलों के लिए समर्थन जोड़ते हैं - जैसे कि क्रेम एरकन के उत्कृष्ट क्यूआर रीडर और विषय पर उनके ब्लॉग दोनों से क्यूआरएफ़टर और वीकार्ड गेटर और आईपैड समाधान, और HIPSCAN vcard आयातक। लेकिन मानते हैं कि आपके पाठकों को ये ऐप्स इंस्टॉल हैं, मेरी राय में एक कदम बहुत दूर है इसलिए मैंने ईमेल, Google मानचित्र और तृतीय पक्ष ऐप्स के वैकल्पिक समाधान की खोज की।

ढेर अतिप्रवाह विषय जबरदस्ती vCard डाउनलोड पर कई सूत्र है (thesheep.co.uk) ईमेल समाधान और से जुड़े ब्लॉग:

इससे पहले कि मैं जारी रखने के लिए, वहाँ कई और अधिक विस्तार से समस्या का वर्णन लिंक हैं कोड डाउनलोड करने के लिए यहां vCard विकल्प कोड ट्रेन यहां Google मानचित्र का उपयोग करके एक संभावित समाधान भी है। और यह डेटाप्लेक्स से इस लेख द्वारा भी कवर किया गया है। जोनास श्मिट फ़ाइल प्रकारों को सही ढंग से सेवा देने के बारे में बात करता है। MacRumours थ्रेड

तब मुझे सोच रहा था, आईओएस 5 के रूप में वेबपृष्ठ से डाउनलोड की गई vcalendar फ़ाइलों का समर्थन करता है। VCALENDAR फ़ाइलों में आमतौर पर एक .ics एक्सटेंशन होता है और मोबाइल सफारी द्वारा एक विंडो लाया जाता है जहां फ़ाइल को खोला जा सकता है और कैलेंडर में सहेजा जा सकता है। मुझे यह अविश्वसनीय लगता है कि ऐप्पल और मोबाइल सफारी वीसीएएल फाइलों का समर्थन करते हैं लेकिन वीसीएडी फाइल नहीं, लेकिन यह वही है। तो क्या होगा यदि मैं एक VCALENDAR फ़ाइल में एक वीसीएआर फ़ाइल संलग्न कर सकता हूं?

प्रथम बाधा एक कैलेंडर ईवेंट पर एक लगाव हो रही है ...

शुरू में मैं Windows में एक Outlook कैलेंडर नियुक्ति जब वेबपृष्ठ से जुड़ा हुआ है और निश्चित रूप से 'नहीं था जो, जबकि संभव सही ढंग से डाउनलोड नहीं किया में एक अटैचमेंट जोड़ने की कोशिश की परिणाम के बाद मैं परिणाम मिला। इसलिए, मैंने ऐप्पल सॉफ्टवेयर का उपयोग करने का प्रयास करने का फैसला किया, आखिरकार, हम एक आईफोन पर डाउनलोड करने की कोशिश कर रहे हैं। ऐप्पल के डिफ़ॉल्ट कैलेंडर एप्लिकेशन का उपयोग करके "iCal" एक मौलिक समस्या प्रस्तुत करता है - आप किसी ईवेंट/कैलेंडर अपॉइंटमेंट में अनुलग्नक नहीं जोड़ सकते हैं! इसलिए मैंने "ओएसएक्स में कैलेंडर घटनाओं में अनुलग्नक जोड़ना" या इसी तरह से जाना और इस उत्कृष्ट लेख को पाया जो मुझे सही दिशा में इंगित करता था।

ओएसएक्स में कैलेंडर अपॉइंटमेंट में अनुलग्नक जोड़ना।

तो कुछ मिनट बाद और BusyCal की एक प्रति स्थापित करने के साथ, मैं एक ईवेंट बनाने में सक्षम था और इसे एक वीसीएआर फ़ाइल संलग्न करता था (पहले ओएसएक्स में मेरे संपर्कों से सहेजा/निर्यात किया गया था)।यह चरण केवल कैलेंडर आइटम में अनुलग्नक जोड़े जाने पर बनाई गई फ़ाइल के स्वरूप को समझना आवश्यक है - आपको नीचे वर्णित समाधान को लागू करने के लिए BusyCal स्थापित करने की आवश्यकता नहीं है, लेकिन मैं इसे संदर्भ के लिए शामिल करता हूं ताकि आप देख सकें कि VCARD VCALENDAR/VEVENT (.ics) फ़ाइल में एम्बेड किया गया है।

चरणों मैं एक एप्पल iMac चल OSX शेर पर थे इस्तेमाल किया:

निर्यात आपके संपर्क से कोई संपर्क/बुक पता किसी vCard फ़ाइल (.vcf) बनाने के लिए - आप के लिए एक पाठ संपादक के साथ इस फ़ाइल को संपादित कर सकते हैं यदि आप चाहें तो यूआईडी और प्रोडी-आईडी जैसे सभी अतिरिक्त सामानों को बाहर निकालें। BEGIN: VCARD संस्करण: 3.0 एन: संपर्क; आईफोन ;;; एफ एन: iPhone संपर्क ईमेल; type = इंटरनेट, type = काम; type = वरी: [email protected] दूरभाष, type = सेल, type = VOICE; type = वरी: 012-345-6789 अंत: VCARD नया कैलेंडर बनाएं - इसे "कॉल करें" - "मेरे मैक पर" क्षेत्र में "vcal" का उपयोग करें ताकि जब आप इस कैलेंडर को .ics फ़ाइल जेनरेट करने के लिए निर्यात करते हैं, तो आपको संलग्न कार्ड के साथ एक ही घटना मिलती है यदि आप मौजूदा कैलेंडर का उपयोग करते हैं तो आपके पास होने वाली सभी घटनाओं के बजाय। एक नया कार्यक्रम बनाएं - इसे अपनी पसंद के कुछ भी कॉल करें - और इसे मनमाने ढंग से समय और दिनांक दें। इस नई घटना में (1) से VCARD फ़ाइल संलग्न करें - स्क्रीनशॉट देखें। BusyCal on iMac allows attachements to VCALENDAR appointments ईवेंट को कैलेंडर में सहेजें। BusyCal के मुख्य मेनू से, कैलेंडर को अपनी स्थानीय डिस्क पर एक .ics फ़ाइल में निर्यात करें - यहां ज़िप फ़ाइल डाउनलोड करें -> संलग्न संपर्क फ़ाइल के साथ ऐप्पल कैलेंडर ईवेंट। अब आप कैलेंडर ईवेंट में ऐप्पल स्टोर संलग्नक की जांच करने के लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग कर सकते हैं और परिणाम इसका उपयोग कर रहा है: ATTACH; VALUE = बिनरी; एनकोडिंग = BASE64; FMTTYPE = टेक्स्ट/निर्देशिका; एक्स-ऐप्पल-फ़ाइल नाम = आईफोन संपर्क.वीसीएफ: क्यूकेवीएचएसयू 46 वीकेएनबीयूकेक्यूएनक्लजेएफयूएलएनजेटी 046 एम ... आदि ... [बेस 64 एन्कोडेड वीसीएआरडी] तो मैंने तब तक उन अतिरिक्त सामानों को तोड़ दिया जिन्हें मुझे आवश्यकता नहीं थी (परीक्षण और त्रुटि यहां तक) जब तक कि मेरे पास नहीं था पूर्ण न्यूनतम जो अभी भी आईफोन द्वारा संलग्नक के साथ वैध कैलेंडर ईवेंट के रूप में पहचाना गया था। ऐसा करने का कारण PHP फ़ाइल बनाना है जो अंतिम वेबपृष्ठ पर कैलेंडर ईवेंट को यथासंभव आसान बनाता है - यहां मैंने जो कुछ भी कम किया है, उसके बारे में vcal-minimal है।

तो उपरोक्त सभी उपरोक्त, जैसा कि मैंने कहा था, संपर्क डाउनलोड समाधान को लागू करने के लिए आवश्यक नहीं है - मैं बस आपको यह दिखाना चाहता था कि ऐप्पल एक्स-ऐप्पल-फ़ाइल नाम संपर्क लाइन का उपयोग करके फ़ाइलों को कैसे संलग्न करता है। और निश्चित रूप से, वे बेस 64 एन्कोडिंग का उपयोग कर वीसीएआर डेटा को कैसे एन्कोड करते हैं। तो अब हमारे पास मक्खी पर VEVENTs बनाने के लिए आवश्यक सभी जानकारी है और उन्हें VCARDs संलग्न करें जिन्हें मोबाइल सफारी के माध्यम से सीधे आईफोन में डाउनलोड किया जा सकता है।

1) संपर्क फ़ाइल (.vcf) अपलोड करें जिसे आप डाउनलोड करना चाहते हैं - आपको इस फ़ाइल की आवश्यकता होगी ताकि आप इसे सीधे आईफोन के लिए गैर-आईफ़ोन या बेस 64 एन्कोड पर डाउनलोड कर सकें।

2) कि मक्खी पर कैलेंडर इवेंट उत्पन्न होगा एक PHP फ़ाइल के लिए एक लिंक बनाएं, जैसे: डाउनलोड संपर्क iPhone शायद नीचे की तरह एक एचटीएमएल 5 मोबाइल एप्लिकेशन में: Simple link to the PHP file to download the contact within VCALENDAR

3) या अपलोड icalcontact-source-code कोड के साथ vcal.php। यह PHP फ़ाइल कैलेंडर फ़ाइल को डाउनलोड करने के लिए सही हेडर/सामग्री प्रकार लागू करती है, तो आपके पास कैलेंडर फ़ाइल सामग्री को सीधे "iphonecontact.ics" प्राप्त करने का विकल्प होता है जैसा कि "vcal-from-file.php" में किया जाता है या उत्पन्न करता है "vcal.php" में दिखाए गए अनुसार फ्लाई पर कैलेंडर। उत्तरार्द्ध मेरी पसंदीदा विधि है क्योंकि आपको डाउनलोड का समय और तिथि दिखाते हुए एक अच्छा टाइमस्टैम्प कैलेंडर कार्यक्रम मिलता है।

4) यही वह है! आप सब तैयार हैं - अब अपने आईफोन पर वेब पेज पर ब्राउज़ करें और "vcal.php" निष्पादित करने के लिए लिंक पर क्लिक करें। आपके ब्राउज़र को अब iphonecontact दिखाना चाहिए।ics फ़ाइल और आपको फोन में इसे खोलने के लिए कहें कैलेंडर एप्लिकेशन Calendar appointment downloaded from web page

5) "खोलें ..." चुनें और आपको कैलेंडर अपॉइंटमेंट और संलग्न संपर्क फ़ाइल के साथ प्रस्तुत किया जाएगा। Calendar event with attached contact file

6) गौर करें कि मैं कुछ उपयोगकर्ता क्या एम्बेडेड संपर्क फ़ाइल से कोई लेना देना बताने के लिए (आप vcal.php में लाइन है कि के लिए सारांश फ़ील्ड सेट करता है देख सकते हैं उपयोगी करने के लिए कैलेंडर ईवेंट का शीर्षक सेट घटना)। तो अब संलग्न संपर्क फ़ाइल क्लिक करें ... Opened contact file

7) और फिर "नया संपर्क बनाएं" और आप लगभग कर लिया है ... Contact SAVED!!!

सहेजें पर संपर्क और अपनी सांस के तहत अभिशाप हुप्स एप्पल ने आपको कूद दिया!

अब मैं HTML5 वेब एप्लिकेशन पर इस तकनीक का इस्तेमाल अपने अनुभवों के आधार पर यहाँ उल्लेख करना चाहते हैं अंक की एक जोड़ी रहे हैं:

कैश प्रकट का उपयोग करना - मैं कुछ अनपेक्षित व्यवहार/कैलेंडर की सेवा समस्या नहीं थी फ़ाइल (iphonecontact.ics) अगर इसे कैश किया गया था - मैं इसे काम करने के लिए नहीं मिला, इसलिए मैं इसे मैनिफेस्ट से बाहर कर देता हूं जिसका अर्थ है कि यह हमेशा डाउनलोड होता है - स्रोत कोड को इस ज़िप फ़ाइल iphonecontact-source-code में शामिल किया गया है।

मैंने कुछ उपयोगकर्ता एजेंट को "vcal.php" में पहचानने के लिए स्नीफिंग जोड़ा है या जिसे आप इसे कहते हैं (नवीनतम ऑनलाइन उदाहरण में download.php) PHP फ़ाइल को एक आईफोन और वीसीएआरडी फ़ाइल में वीसीएलएंडएंडर फ़ाइल की सेवा करना है या नहीं अन्य सभी ब्राउज़रों के लिए।

यदि भी UiWebView एप्लिकेशन के माध्यम से देखा जाता है तो सावधान रहें, फिर मैं उपयोगकर्ता को उस पृष्ठ पर रीडायरेक्ट करता हूं जो मोबाइल सफारी के साथ खुलासा करता है (जैसा कि मेरे ब्लॉग पर किसी के द्वारा सुझाया गया है) अन्यथा आपको डरावनी "फ़्रेम लोड बाधित" त्रुटि मिलती है।

मुझे लगता है कि इसके बारे में - तो संक्षेप में प्रस्तुत करने के लिए:

मोबाइल सफारी VCARD का समर्थन नहीं करता (.vcf) फ़ाइलों को सीधे लेकिन समर्थन VCALENDAR (.ics) फ़ाइलों करता है।

  • वर्तमान सर्वोत्तम समाधान उपयोगकर्ता ईमेल पते का अनुरोध करके या Google मानचित्र लिंक में संपर्क एम्बेड करके संपर्क को ईमेल करना या वीसीएआरडीएस को संभालने वाला ऐप डाउनलोड करना है।
  • ऐप्पल कैलेंडर फ़ाइलों को अनुलग्नकों का समर्थन करता है लेकिन आसानी से नहीं तो एक बार जब हम जानते हैं कि यह कैसे किया जाता है तो हम इसे PHP में कर सकते हैं।
  • एक VCALENDAR फ़ाइल में एक वीसीएडी एम्बेड करें ताकि उपयोगकर्ता को एक अतिरिक्त क्लिक या दो के साथ अपनी पता पुस्तिका में संपर्क सहेजने की अनुमति मिल सके।

मुझे आशा है कि इस समाधान की तरह है - यह रूप में अच्छा है के रूप में मुझे लगता है कि हम जब तक एप्पल नरम पड़ने हो और मोबाइल सफारी vCard फ़ाइलें स्वीकार करने के लिए अनुमति देने के लिए जा रहे हैं।

अगली बार तक ...

+0

हम अभी भी हैं जहां हम थे जब मैंने आपके अन्य उत्तरों को हटा दिया। आपको अपने ब्लॉग पर एक लिंक पोस्ट करने से अधिक करना होगा। अन्यथा जब आप यूआरएल बदलते हैं या आपका ब्लॉग मर जाता है तो क्या होता है? हम मूल्यवान जानकारी खो देते हैं। –

4

Googlers के लिए, iOS 7 (बीटा 6) में इस पोस्ट में, के रूप में फ़ाइल संपर्कों ऐप्लिकेशन में सीधे खोला जा सकता है और बचा लिया।

enter image description here