2012-09-20 26 views
9

हालांकि यूट्यूब ऐप अब ऐप्पल द्वारा एक अंतर्निहित ऐप नहीं है, ऐसा लगता है कि यूट्यूब लिंक टैप करते समय (उदाहरण के लिए मेल में), जो http://www.youtube.com से शुरू होता है, यूट्यूब खोलता है ऐप तुरंतडोमेन द्वारा यूआरएल के साथ कस्टम ऐप लॉन्च करें

आईओएस 6 में कस्टम ऐप्स के लिए इसका कोई तरीका है? मुझे केवल यूआरएल के माध्यम से ऐप लॉन्च करने के तरीके के रूप में कस्टम योजनाओं के बारे में पता है।

+0

[यहाँ] (http://www.absoluteripple.com/1/post/2012/02/using-custom-url-scheme-to-launch- application.html) वह लिंक है जिसे मैंने पहले अपने उत्तर में पोस्ट करने का प्रयास किया था जिसे हटा दिया गया था। क्षमा करें, @ChrisF ... अभी भी रस्सियों को सीखना। – codeqi

+0

मैंने जितना गहराई से जवाब दिया है, उतना गहराई से उत्तर पोस्ट किया है। जब मैं एक कस्टम यूआरएल के लिए अपना ऐप पंजीकृत कर रहा था तो मैंने उसी कदम का पालन किया। क्या आप देख सकते हैं कि मेरा उत्तर नीचे आपके प्रश्न का उत्तर देता है? – SashaZd

+0

@SashaZd आपके इंडेथ उत्तर का जवाब के साथ कुछ लेना देना नहीं है, क्योंकि यह यह नहीं बताता कि YouTube ऐप यह करता है कि यह क्या करता है। –

उत्तर

2

मुझे यकीन नहीं है कि मैं आपका प्रश्न समझता हूं, लेकिन यहां एक उत्तर में मेरा प्रयास है। आप पूछते हैं कि किसी अन्य ऐप के भीतर से तृतीय पक्ष ऐप्स खोलने का कोई तरीका है या नहीं। जवाब यह है कि यदि ऐप ने एक कस्टम यूआरएल योजना लागू की है (here देखें और अन्य ऐप्स अनुभाग के साथ संचार करने के लिए नेविगेट करें)।

लेकिन आप यह भी कहते हैं कि आप इसके बारे में पहले ही जानते हैं। इस मामले में, मुझे पूरा यकीन है कि कोई दूसरा रास्ता नहीं है।

0

मुझे लगता है कि मूल मेल ऐप उसी विधि का उपयोग करता है जो सभी ऐप्स यूआरएल खोलने के लिए उपयोग करते हैं (जो कोई ऐप खोल देगा या अनुरोध को पूरा करने के लिए मोबाइल सफारी का उपयोग करेगा यदि कोई इंस्टॉल ऐप यूआरएल को संसाधित नहीं कर सकता है)।

आप का उपयोग एक ही परिणाम हासिल करने के लिए निम्नलिखित में सक्षम होना चाहिए: यदि इंस्टॉल हो

NSString *youtubeURL = @"http://www.youtube.com/watch?v=c2JTu22qxms"; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:youtubeURL]]; 

यह YouTube एप्लिकेशन खोलें या YouTube एप्लिकेशन इंस्टॉल नहीं है, तो वीडियो खेलने के लिए सफारी का प्रयोग करेंगे।

---- अद्यतन -----

मैं कैसे वास्तव में YouTube ऐप्लिकेशन यह करता है इस पर गौर करने का फैसला किया।

मुझे कुछ दिलचस्प मिला!

  • अमेरिकन प्लान [AppId]

  • vnd.youtube

  • यूट्यूब

इसका मतलब है कि http://www.youtube.com पुनः निर्देश:

यहां ऐसे URL YouTube एप्लिकेशन वाणी हैं ली पर यूआरएल में से एक के लिए अनुरोध सेंट। लेकिन जब मैं इसे आज़माता हूं, तो मुझे मोबाइल सफारी खोलने और फिर रीडायरेक्ट नहीं दिखाई देता है।

मैं जांच जारी रखूंगा, यह बहुत ही दिलचस्प है।

+0

सवाल यह है कि यूट्यूब के अलावा कस्टम ऐप्स के लिए इस व्यवहार की नकल कैसे करें। – Danra

+0

@ दाना आप बिल्कुल सही हैं! मैं शब्द से उलझन में आया। – Zebs

2

अपने ऐप के लिए URL प्रकार रजिस्टर करने के लिए

को अपने ऐप्लिकेशन के Info.plist फ़ाइल में CFBundleURLTypes कुंजी को शामिल करें। CFBundleURLTypes कुंजी में शब्दकोशों की एक सरणी होती है, जिनमें से प्रत्येक ऐप का समर्थन करने वाली यूआरएल योजना को परिभाषित करता है।

Keys and values of the CFBundleURLTypes property

कॉल यूआरएल (जैसा कि ऊपर पंजीकृत) कस्टम यूआरएल योजनाएं

कि है अपने स्वयं के कस्टम URL योजना में सक्षम होना चाहिए कोई एप्लिकेशन को

NSURL *myURL = [NSURL URLWithString:@"todolist://www.acme.com?Quarterly%20Report#200806231300"]; 
[[UIApplication sharedApplication] openURL:myURL]; 

हैंडल कॉल इसे पास किए गए यूआरएल को संभालने के लिए। सभी यूआरएल आपके ऐप प्रतिनिधि को या तो लॉन्च समय पर या आपके ऐप चल रहे हैं या पृष्ठभूमि में पास किए जाते हैं। आने वाले यूआरएल को संभालने के लिए, आपके प्रतिनिधि को निम्न विधियों को लागू करना चाहिए:

यूआरएल के बारे में जानकारी प्राप्त करने के लिए application:willFinishLaunchingWithOptions: और application:didFinishLaunchingWithOptions: विधियों का उपयोग करें और यह तय करें कि आप इसे खोलना चाहते हैं या नहीं। यदि कोई तरीका विधि वापस नहीं करता है, तो आपके ऐप का यूआरएल हैंडलिंग कोड नहीं कहा जाता है। आईओएस 4.2 और बाद में, फ़ाइल खोलने के लिए application:openURL:sourceApplication:annotation: विधि का उपयोग करें। आईओएस 4.1 और इससे पहले, फ़ाइल खोलने के लिए application:handleOpenURL: विधि का उपयोग करें। यदि कोई यूआरएल अनुरोध आने पर आपका ऐप नहीं चल रहा है, तो इसे लॉन्च किया गया है और अग्रभूमि में ले जाया गया है ताकि यह यूआरएल खोल सके। आपके application:willFinishLaunchingWithOptions: या application:didFinishLaunchingWithOptions: विधि के कार्यान्वयन को यूआरएल को अपने विकल्प शब्दकोश से पुनर्प्राप्त करना चाहिए और यह निर्धारित करना चाहिए कि ऐप इसे खोल सकता है या नहीं। यदि यह कर सकता है, तो हाँ वापस करें और application:openURL:sourceApplication:annotation: (या application:handleOpenURL:) विधि यूआरएल के वास्तविक उद्घाटन को संभालने दें। (यदि आप दोनों विधियों को लागू करते हैं, तो यूआरएल खोले जाने से पहले दोनों को यस वापस करना होगा।)

यदि आपका ऐप चल रहा है लेकिन यूआरएल अनुरोध आने पर पृष्ठभूमि में या निलंबित हो गया है, तो इसे खोलने के लिए अग्रभूमि में स्थानांतरित किया जाता है यूआरएल। इसके तुरंत बाद, यूआरएल की जांच करने और इसे खोलने के लिए सिस्टम प्रतिनिधि के application:openURL:sourceApplication:annotation: पर कॉल करता है। यदि आपका प्रतिनिधि इस विधि को लागू नहीं करता है (या वर्तमान सिस्टम संस्करण आईओएस 4.1 या इससे पहले है), तो सिस्टम आपके प्रतिनिधि के application:handleOpenURL: विधि को इसके बजाय कॉल करता है।

नोट

दो या अधिक आवेदन पत्र पंजीकृत हैं, तो एक ही कस्टम URL है, वहाँ कोई गारंटी जो आवेदन के आईओएस अगर कस्टम URL है कहा जाता है खुलेगा।

अतिरिक्त पठन

iOS App Programming Guide :: Advanced Tips and Trics

+0

धन्यवाद, मैंने इस सवाल में उल्लेख किया है कि मैं कस्टम यूआरएल योजनाओं से अवगत हूं, और बिना उनके काम करने का एक तरीका ढूंढ रहा हूं, जैसा यूट्यूब करता है। – Danra

+1

यूट्यूब कस्टम यूआरएल योजनाओं का उपयोग करता है। आपको क्या लगता है कि यह नहीं करता है? Www.youtube.com/watch? यूट्यूब – SashaZd

+0

को आवंटित कस्टम यूआरएल योजना क्या आपको लगता है कि 'www.youtube.com/watch?' एक यूआरएल योजना है? – Bogdacutu