iOS
IOS में डीप लिंकिंग
खोज…
टिप्पणियों
उदाहरण और स्पष्टीकरण के साथ उपयोगी Apple प्रलेखन ।
अपनी URL योजना के आधार पर एक ऐप खोलना
परिभाषित URL स्कीम todolist://
साथ एक ऐप खोलने के लिए todolist://
:
उद्देश्य सी
NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];
तीव्र
let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
UIApplication.shared().openURL(url)
}
एचटीएमएल
<a href="todolist://there/is/something/to/do">New SMS Message</a>
नोट: यह जांचने के लिए उपयोगी है कि क्या लिंक उपयोगकर्ता के लिए एक उपयुक्त संदेश प्रदर्शित करने के लिए खोला जा सकता है। यह
canOpenURL:
विधि का उपयोग करके किया जा सकता है।
अपने स्वयं के ऐप में एक URL योजना जोड़ना
मान लीजिए कि आप MyTasks
नामक एक ऐप पर काम कर रहे हैं, और आप एक शीर्षक और एक निकाय के साथ एक नया कार्य बनाने के लिए इनबाउंड URL की अनुमति देना चाहते हैं। आपके द्वारा बनाया गया URL कुछ इस तरह दिखाई दे सकता है:
mytasks://create?title=hello&body=world
(बेशक, हमारे कार्य को बनाने के लिए text
और body
पैरामीटर का उपयोग किया जाता है जिसे हम बना रहे हैं!)
यहां इस URL योजना को अपनी परियोजना में जोड़ने के लिए बड़े कदम हैं:
- अपने ऐप की
Info.plist
फ़ाइल में एक URL स्कीम रजिस्टर करें, ताकि सिस्टम को पता चल सके कि आपके ऐप में URL कबInfo.plist
जाए। - अपने
UIApplicationDelegate
एक फ़ंक्शन जोड़ें जो आने वाले URL को स्वीकार करता है और संभालता है। - उस URL को खोले जाने पर जो भी कार्य करने की आवश्यकता है उसे करें।
चरण एक: Info.plist में एक URL योजना पंजीकृत करें:
सबसे पहले, हमें अपनी Info.plist फ़ाइल में "URL प्रकार" प्रविष्टि जोड़ने की आवश्यकता है। यहां (+) बटन पर क्लिक करें:
... फिर अपने ऐप के लिए एक विशिष्ट पहचानकर्ता, साथ ही वह URL योजना दर्ज करें जिसका आप उपयोग करना चाहते हैं। विशिष्ट होना! आप नहीं चाहते कि URL योजना किसी अन्य एप्लिकेशन के कार्यान्वयन के साथ विरोध करे। बहुत छोटे होने की तुलना में यहाँ बहुत लंबा होना बेहतर है!
चरण दो: URL को UIApplicationDelegate में संभालें
हमें application:openURL:options:
को लागू करने की आवश्यकता है application:openURL:options:
हमारे UIApplicationDelegate
। हम आने वाले URL
का निरीक्षण करेंगे और देखेंगे कि क्या कोई कार्रवाई हो सकती है!
एक कार्यान्वयन यह होगा:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
if url.scheme == "mytasks" && url.host == "create" {
let title = // get the title out of the URL's query using a method of your choice
let body = // get the title out of the URL's query using a method of your choice
self.rootViewController.createTaskWithTitle(title, body: body)
return true
}
return false
}
चरण तीन: URL के आधार पर एक कार्य करें।
जब कोई उपयोगकर्ता URL के माध्यम से आपका ऐप खोलता है, तो वे संभवतः कुछ होने की उम्मीद करते हैं। हो सकता है कि वह सामग्री के एक टुकड़े पर नेविगेट कर रहा हो, हो सकता है कि वह एक नया आइटम बना रहा हो - इस उदाहरण में, हम ऐप में एक नया कार्य बनाने जा रहे हैं!
उपरोक्त कोड में, हम self.rootViewController.createTaskWithTitle(:body:)
कॉल देख सकते हैं - इसलिए यह मानते हुए कि आपके AppDelegate
पास अपने रूट व्यू कंट्रोलर के लिए एक पॉइंटर है जो फ़ंक्शन को ठीक से लागू करता है, आप सभी सेट हो गए हैं!
अपने ऐप के लिए deeplink सेट करना
अपने ऐप के लिए डीप-लिंकिंग सेट करना आसान है। आपको बस एक छोटे से यूआरएल की आवश्यकता है, जिसके उपयोग से आप अपना ऐप खोलना चाहते हैं।
अपने ऐप के लिए डीप-लिंकिंग सेट करने के लिए चरणों का पालन करें।
आओ हम एक प्रोजेक्ट बनाएं और इसे नाम दें DeepLinkPOC।
अब अपने प्रोजेक्ट लक्ष्य का चयन करें।
लक्ष्य का चयन करने के बाद, 'जानकारी' टैब चुनें।
नीचे तक स्क्रॉल करें जब तक आपको URL प्रकारों का एक विकल्प दिखाई न दे
'+' विकल्प पर क्लिक करें।
आप URL योजनाओं को एक स्ट्रिंग जोड़ते हुए देखेंगे, जिसका उपयोग करके आप अपना ऐप खोलना चाहते हैं। URL योजनाओं में " डीपलिंकिंग " जोड़ें।
इसलिए, अपने ऐप को खोलने के लिए आप इसे "डीपलिंकिंग: //" टाइप करके अपनी सफारी में लॉन्च कर सकते हैं। आपके डीप-लिंकिंग स्ट्रिंग में निम्न प्रारूप है।
[scheme]://[host]/[path] --> DeepLinking://path/Page1
कहाँ, योजना: "डीपलिंकिंग" होस्ट: "पथ" पथ: "पेज 1"
ध्यान दें : भले ही होस्ट और पथ को न जोड़ें, यह एप्लिकेशन लॉन्च करेगा, इसलिए कोई चिंता नहीं है। लेकिन इसके अलावा आप एप्लिकेशन लॉन्च के बाद विशेष पृष्ठ पर होस्ट और पथ जोड़ सकते हैं।
- अब अपने appdelegate के लिए निम्नलिखित विधि जोड़ें।
स्विफ्ट:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
उद्देश्य सी:
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
जब भी आपके ऐप को आपके ऐप के लिए सेट किए गए डीप-लिंकिंग स्ट्रिंग का उपयोग करके लॉन्च किया जाता है, तो उपरोक्त विधि को कहा जाता है।
- अब आपके ऐप को इंस्टॉल करने का समय है, लेकिन बटन को चलाने के लिए सीधे कूदने से पहले प्रतीक्षा करें। स्कीम के ऐप-लॉन्च विधि में एक छोटा सा बदलाव करें।
- के रूप में अपनी योजना का चयन करें और संपादित करें
अब रन बटन पर क्लिक करें (यदि आप चाहते हैं कि आप अपने didFinishLaunchingWithOptions पर ब्रेकपॉइंट जोड़ सकते हैं और मूल्यों का पालन करने के लिए ओपन विधि)
आपको एक संदेश "प्रतीक्षा करने के लिए DeepLinkPOC (या आपके ऐप का नाम) लॉन्च करने के लिए" दिखाई देगा।
ओपन सफारी और सर्च बार में " डीपलिंकिंग: // " टाइप करें, यह " डीपलिंकपोक में इस पेज को ओपन करेगा" आपके एप को लॉन्च करने के लिए ओपन पर क्लिक करें।
आशा है कि आपको पता चल गया होगा कि अपने ऐप के लिए डीप-लिंकिंग कैसे सेट करें :)