इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. परिचय
Last Updated: 2020-1-6
Firebase क्लाउड से मैसेज (FCM), अलग-अलग प्लैटफ़ॉर्म पर मैसेज भेजने की सुविधा देने वाला एक समाधान है. इसकी मदद से, बिना किसी शुल्क के भरोसेमंद तरीके से मैसेज भेजे जा सकते हैं.
FCM का इस्तेमाल करके, क्लाइंट ऐप्लिकेशन को यह सूचना दी जा सकती है कि सिंक करने के लिए नया ईमेल या अन्य डेटा उपलब्ध है. उपयोगकर्ताओं को फिर से जोड़ने और उन्हें बनाए रखने के लिए, सूचना वाले मैसेज भेजे जा सकते हैं. इंस्टेंट मैसेजिंग जैसे इस्तेमाल के उदाहरणों के लिए, कोई मैसेज क्लाइंट ऐप्लिकेशन को 4 केबी तक का पेलोड ट्रांसफ़र कर सकता है.
यह सुविधा कैसे काम करती है?
FCM को लागू करने के लिए, भेजने और पाने से जुड़े दो मुख्य कॉम्पोनेंट शामिल होते हैं:
- भरोसेमंद एनवायरमेंट, जैसे कि Cloud Functions for Firebase या ऐप्लिकेशन सर्वर. इस पर मैसेज बनाए, टारगेट किए, और भेजे जा सकते हैं.
- iOS, Android या वेब (JavaScript) क्लाइंट ऐप्लिकेशन, जो प्लैटफ़ॉर्म के हिसाब से ट्रांसपोर्ट सेवा के ज़रिए मैसेज पाता है.
FCM के आर्किटेक्चर के बारे में खास जानकारी
FCM, मैसेज बनाने, भेजने, और पाने के लिए इन कॉम्पोनेंट का इस्तेमाल करता है:
- मैसेज के अनुरोध लिखने या बनाने के लिए टूल. सूचनाएं कंपोज़ करने की सुविधा, सूचना के अनुरोध बनाने के लिए जीयूआई पर आधारित विकल्प देती है. पूरी तरह से ऑटोमेशन और सभी तरह के मैसेज के लिए, आपको मैसेज के अनुरोध ऐसे भरोसेमंद सर्वर एनवायरमेंट में बनाने होंगे जो Firebase Admin SDK या FCM सर्वर प्रोटोकॉल के साथ काम करता हो. यह एनवायरमेंट, Firebase के लिए Cloud Functions, Google App Engine या आपका अपना ऐप्लिकेशन सर्वर हो सकता है.
- FCM बैकएंड, जो (अन्य फ़ंक्शन के साथ-साथ) मैसेज के अनुरोध स्वीकार करता है, विषयों के हिसाब से मैसेज भेजता है, और मैसेज का मेटाडेटा जनरेट करता है. जैसे, मैसेज आईडी.
- यह प्लैटफ़ॉर्म-लेवल की ट्रांसपोर्ट लेयर है. यह मैसेज को टारगेट किए गए डिवाइस पर भेजती है, मैसेज डिलीवर करती है, और प्लैटफ़ॉर्म के हिसाब से कॉन्फ़िगरेशन लागू करती है. इस ट्रांसपोर्ट लेयर में ये शामिल हैं:
- Google Play services वाले Android डिवाइसों के लिए Android ट्रांसपोर्ट लेयर (एटीएल)
- iOS डिवाइसों के लिए Apple Push Notification service (APNs)
- वेब ऐप्लिकेशन के लिए वेब पुश प्रोटोकॉल
- उपयोगकर्ता के डिवाइस पर मौजूद FCM SDK, जहां सूचना दिखाई जाती है या ऐप्लिकेशन की फ़ोरग्राउंड/बैकग्राउंड स्थिति और ऐप्लिकेशन के लॉजिक के हिसाब से मैसेज को मैनेज किया जाता है.
आपको क्या बनाने को मिलेगा
इस कोडलैब में, आपको FCM की मदद से किसी सैंपल iOS ऐप्लिकेशन में पुश नोटिफ़िकेशन जोड़ने के बारे में बताया जाएगा.
आपको क्या सीखने को मिलेगा
- किसी उपयोगकर्ता को पुश मैसेज पाने के लिए ऑप्ट-इन और ऑप्ट-आउट करने का तरीका
- आने वाले पुश मैसेज को मैनेज करने का तरीका
- सूचना दिखाने का तरीका
- सूचना पर किए गए क्लिक का जवाब देने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
- Xcode 11.0 या उसके बाद का वर्शन
- CocoaPods 1.9.0 या उसके बाद के वर्शन
- Apple Developer खाता
- ऐप्लिकेशन चलाने के लिए, फ़िज़िकल iOS डिवाइस
- Swift की बुनियादी जानकारी
2. सेट अप करना
सैंपल कोड डाउनलोड करें
इस कोडलैब में, आपको अपना टेस्ट ऐप्लिकेशन बनाना होगा. हालांकि, अगर आपको मौजूदा सैंपल ऐप्लिकेशन देखना और चलाना है, तो क्विकस्टार्ट सैंपल कोड डाउनलोड किया जा सकता है.
सैंपल पाने के दो तरीके हैं:
- Git रिपॉज़िटरी को क्लोन करें:
$ git clone https://github.com/firebase/quickstart-ios.git
- ZIP फ़ाइल डाउनलोड करें:
सोर्स को ZIP फ़ाइल के तौर पर डाउनलोड करने पर, उसे अनपैक करने से आपको रूट फ़ोल्डर quickstart-ios
मिलता है.
नया ऐप्लिकेशन बनाना
यहाँ दिया गया तरीका अपनाकर, अपना टेस्ट ऐप्लिकेशन बनाएँ. यहाँ दिया गया तरीका XCode 12.3 में बताया गया है:
- XCode खोलें और Create a new Xcode project को चुनें.
- ऐप्लिकेशन चुनें और आगे बढ़ें पर क्लिक करें.
- प्रॉडक्ट का नाम डालें (जैसे, MessagingExample)
- टीम चुनें. अगर आपने टीम नहीं बनाई है, तो Apple Developer खाते में इसे कॉन्फ़िगर करें.
- संगठन का आइडेंटिफ़ायर डालें (जैसे,
com.
your-name
) - बंडल आइडेंटिफ़ायर डालें. उदाहरण के लिए,
com.
your-name
.MessagingExample
, यह सभी iOS ऐप्लिकेशन में यूनीक होना चाहिए). - इंटरफ़ेस पुलडाउन में जाकर, स्टोरीबोर्ड चुनें.
- लाइफ़ साइकल पुलडाउन में, UIKit ऐप्लिकेशन डेलिगेट चुनें.
- भाषा में जाकर, Swift को चुनें.
- आगे बढ़ें पर क्लिक करें.
APN कुंजी बनाते समय और अपने ऐप्लिकेशन को Firebase प्रोजेक्ट में रजिस्टर करते समय, आपको बंडल आइडेंटिफ़ायर की ज़रूरत होगी.
3. एपीएन कॉन्फ़िगर करना
पुष्टि करने की कुंजी बनाना
इस सेक्शन में, पुश नोटिफ़िकेशन के लिए चालू किए गए ऐप्लिकेशन आईडी के लिए पुष्टि करने का पासकोड जनरेट करने का तरीका बताया गया है. अगर आपके पास पहले से कोई कुंजी है, तो नई कुंजी जनरेट करने के बजाय उसका इस्तेमाल किया जा सकता है.
पुष्टि करने की कुंजी बनाने के लिए:
- अपने डेवलपर खाते में, सर्टिफ़िकेट, आइडेंटिफ़ायर, और प्रोफ़ाइलें पर जाएं. इसके बाद, कुंजियां पर जाएं.
- सबसे ऊपर दाएं कोने में मौजूद, जोड़ें बटन (+) पर क्लिक करें.
- APNs के पुष्टि करने वाले कुंजी के लिए ब्यौरा डालें
- मुख्य सेवाओं में जाकर, APNs चेकबॉक्स को चुनें. इसके बाद, जारी रखें पर क्लिक करें.
- रजिस्टर करें पर क्लिक करें. इसके बाद, डाउनलोड करें पर क्लिक करें. अपनी सुरक्षा कुंजी को किसी सुरक्षित जगह पर सेव करें. यह एक बार डाउनलोड की जा सकती है. इसके बाद, इसे वापस नहीं पाया जा सकता.
ऐप्लिकेशन आईडी बनाना
ऐप्लिकेशन आईडी एक आइडेंटिफ़ायर होता है. यह किसी ऐप्लिकेशन की खास पहचान करता है. आम तौर पर, इसे उल्टे क्रम में लिखे गए डोमेन से दिखाया जाता है.
- Apple Developer Member Center पर जाएं और साइन इन करें.
- Certificates, Identifiers and Profiles पर जाएं.
- पहचानकर्ता पर जाएं.
- नया ऐप्लिकेशन आईडी बनाने के लिए, + बटन पर क्लिक करें.
- ऐप्लिकेशन आईडी रेडियो बटन चुनें और जारी रखें पर क्लिक करें.
- ऐप्लिकेशन चुनें और जारी रखें पर क्लिक करें.
- नया ऐप्लिकेशन आईडी बनाने के लिए:
- अपने ऐप्लिकेशन आईडी के लिए नाम डालें.
- टीम आईडी डालें. यह वैल्यू, सदस्यता टैब में मौजूद टीम आईडी से मेल खानी चाहिए.
- ऐप्लिकेशन आईडी का सफ़िक्स सेक्शन में जाकर, एक्सप्लिसिट ऐप्लिकेशन आईडी चुनें. इसके बाद, अपना बंडल आईडी डालें.
- ऐप्लिकेशन सेवाएं सेक्शन में, पक्का करें कि पुश नोटिफ़िकेशन पर सही का निशान लगा हो.
- जारी रखें पर क्लिक करें और देखें कि आपने सही जानकारी दी है या नहीं:
- पहचानकर्ता की वैल्यू, टीम आईडी और बंडल आईडी की वैल्यू के कॉनकैटेनेशन से मेल खानी चाहिए
- पुश नोटिफ़िकेशन कॉन्फ़िगर किए जा सकने चाहिए
- ऐप्लिकेशन आईडी बनाने के लिए, रजिस्टर करें पर क्लिक करें.
प्रोफ़ाइल बनाना
डेवलपमेंट के दौरान अपने ऐप्लिकेशन को टेस्ट करने के लिए, आपको डेवलपमेंट के लिए एक प्रोफ़ाइल की ज़रूरत होती है. इससे आपके डिवाइसों को ऐसे ऐप्लिकेशन को चलाने की अनुमति मिलती है जो अब तक App Store पर पब्लिश नहीं हुआ है.
- Apple Developer Member Center पर जाएं और साइन इन करें.
- Certificates, Identifiers and Profiles पर जाएं.
- अगर सबसे ऊपर बाएं कोने में मौजूद ड्रॉप-डाउन मेन्यू में iOS, tvOS, watchOS पहले से नहीं चुना गया है, तो इसे चुनें. इसके बाद, प्रोफ़ाइलें पर जाएं.
- नई प्रोफ़ाइल बनाने के लिए, + बटन पर क्लिक करें.
- प्रोविज़निंग प्रोफ़ाइल टाइप के तौर पर iOS ऐप्लिकेशन डेवलपमेंट चुनें. इसके बाद, जारी रखें पर क्लिक करें.
- ड्रॉप-डाउन मेन्यू में जाकर, वह ऐप्लिकेशन आईडी चुनें जिसका आपको इस्तेमाल करना है. इसके बाद, जारी रखें पर क्लिक करें.
- पिछले चरण में चुने गए ऐप्लिकेशन आईडी का iOS डेवलपमेंट सर्टिफ़िकेट चुनें. इसके बाद, जारी रखें पर क्लिक करें.
- वे iOS डिवाइस चुनें जिन्हें आपको Provisioning Profile में शामिल करना है. इसके बाद, जारी रखें पर क्लिक करें. पक्का करें कि आपने उन सभी डिवाइसों को चुना हो जिनका इस्तेमाल आपको टेस्टिंग के लिए करना है.
- इस प्रोविज़निंग प्रोफ़ाइल के लिए कोई नाम डालें.उदाहरण के लिए, MessagingExampleProfile. इसके बाद, जनरेट करें पर क्लिक करें.
- Provisioning Profile को अपने Mac पर सेव करने के लिए, डाउनलोड करें पर क्लिक करें.
- Provisioning Profile फ़ाइल को इंस्टॉल करने के लिए, उस पर दो बार क्लिक करें.
4. अपने iOS प्रोजेक्ट में Firebase जोड़ना
Firebase प्रोजेक्ट बनाना
अपने iOS ऐप्लिकेशन में Firebase जोड़ने से पहले, आपको एक Firebase प्रोजेक्ट बनाना होगा, ताकि उसे अपने iOS ऐप्लिकेशन से कनेक्ट किया जा सके. Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी पर जाएं.
- Firebase कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें. इसके बाद, प्रोजेक्ट का नाम चुनें या डालें.
अगर आपके पास कोई मौजूदा Google Cloud Platform (GCP) प्रोजेक्ट है, तो उस प्रोजेक्ट में Firebase संसाधन जोड़ने के लिए, ड्रॉपडाउन मेन्यू से प्रोजेक्ट चुनें.
- (ज़रूरी नहीं) अगर नया प्रोजेक्ट बनाया जा रहा है, तो प्रोजेक्ट आईडी में बदलाव किया जा सकता है.
Firebase, आपके Firebase प्रोजेक्ट को अपने-आप एक यूनीक आईडी असाइन करता है. Firebase प्रोजेक्ट के बारे में जानकारी देने वाले पेज पर जाएं. इससे आपको यह जानने में मदद मिलेगी कि Firebase, प्रोजेक्ट आईडी का इस्तेमाल कैसे करता है.
- जारी रखें पर क्लिक करें.
- अपने प्रोजेक्ट के लिए Google Analytics सेट अप करें. इससे आपको Firebase के इन प्रॉडक्ट का बेहतर तरीके से इस्तेमाल करने में मदद मिलती है:
- Firebase Crashlytics
- Firebase अनुमान
- Firebase क्लाउड से मैसेज
- Firebase इन-ऐप्लिकेशन मैसेज
- Firebase रिमोट कॉन्फ़िगरेशन
- Firebase A/B टेस्टिंग
जब आपसे पूछा जाए, तब किसी मौजूदा Google Analytics खाते का इस्तेमाल करने या नया खाता बनाने का विकल्प चुनें. अगर आपको नया खाता बनाना है, तो Analytics रिपोर्टिंग की जगह चुनें. इसके बाद, अपने प्रोजेक्ट के लिए डेटा शेयर करने की सेटिंग और Google Analytics की शर्तें स्वीकार करें.
- प्रोजेक्ट बनाएं पर क्लिक करें. अगर किसी मौजूदा GCP प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो Firebase जोड़ें पर क्लिक करें.
Firebase, आपके Firebase प्रोजेक्ट के लिए अपने-आप संसाधन उपलब्ध कराता है. प्रोसेस पूरी होने के बाद, आपको Firebase कंसोल में अपने Firebase प्रोजेक्ट के खास जानकारी वाले पेज पर ले जाया जाएगा.
अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर करना
Firebase प्रोजेक्ट बनाने के बाद, उसमें अपना iOS ऐप्लिकेशन जोड़ा जा सकता है.
Firebase प्रोजेक्ट में ऐप्लिकेशन जोड़ने के सबसे सही तरीकों और ज़रूरी बातों के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी लेख पढ़ें. इसमें, एक से ज़्यादा बिल्ड वैरिएंट को मैनेज करने का तरीका भी शामिल है.
- Firebase कंसोल पर जाएं.
- सेटअप वर्कफ़्लो लॉन्च करने के लिए, प्रोजेक्ट की खास जानकारी वाले पेज के बीच में मौजूद iOS आइकॉन पर क्लिक करें.
अगर आपने पहले से ही अपने Firebase प्रोजेक्ट में कोई ऐप्लिकेशन जोड़ा है, तो प्लैटफ़ॉर्म के विकल्प दिखाने के लिए, ऐप्लिकेशन जोड़ें पर क्लिक करें.
- iOS बंडल आईडी फ़ील्ड में, अपने ऐप्लिकेशन का बंडल आईडी डालें.
- (ज़रूरी नहीं) ऐप्लिकेशन की अन्य जानकारी डालें: ऐप्लिकेशन का निकनेम और App Store आईडी.
- ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.
Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना
- Firebase iOS कॉन्फ़िगरेशन फ़ाइल (
GoogleService-Info.plist
) पाने के लिए, GoogleService-Info.plist डाउनलोड करें पर क्लिक करें. - अपनी कॉन्फ़िगरेशन फ़ाइल को Xcode प्रोजेक्ट के रूट में ले जाएं. अगर आपसे कहा जाए, तो सभी टारगेट में कॉन्फ़िगरेशन फ़ाइल जोड़ने का विकल्प चुनें.
अगर आपके प्रोजेक्ट में एक से ज़्यादा बंडल आईडी हैं, तो आपको हर बंडल आईडी को Firebase कंसोल में रजिस्टर किए गए ऐप्लिकेशन से जोड़ना होगा. इससे हर ऐप्लिकेशन के लिए अलग GoogleService-Info.plist
फ़ाइल होगी.
XCode बंद करें.
अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ना
हमारा सुझाव है कि Firebase लाइब्रेरी इंस्टॉल करने के लिए, CocoaPods का इस्तेमाल करें. हालांकि, अगर आपको CocoaPods का इस्तेमाल नहीं करना है, तो एसडीके फ़्रेमवर्क को सीधे तौर पर इंटिग्रेट किया जा सकता है. इसके अलावा, Swift Package Manager के बीटा वर्शन का इस्तेमाल किया जा सकता है.
- अगर आपके पास पहले से कोई Podfile नहीं है, तो एक बनाएं. अगर क्विकस्टार्ट सैंपल का इस्तेमाल किया जा रहा है, तो Xcode प्रोजेक्ट और Podfile (पॉड के साथ) पहले से मौजूद होते हैं.
$ cd MessagingExample $ pod init
- अपने Podfile में, वे Firebase पॉड जोड़ें जिनका इस्तेमाल आपको अपने ऐप्लिकेशन में करना है.
अपने iOS ऐप्लिकेशन में, Firebase के साथ काम करने वाले किसी भी प्रॉडक्ट को जोड़ा जा सकता है.
क्विकस्टार्ट सैंपल में, Google Analytics और Firebase Cloud Messaging SDK टूल जोड़े गए हैं.
# Add the Firebase pod for Google Analytics pod 'Firebase/Analytics' # Add the pod for Firebase Cloud Messaging pod 'Firebase/Messaging'
- पॉड इंस्टॉल करें. इसके बाद, Xcode में प्रोजेक्ट देखने के लिए, अपनी
.xcworkspace
फ़ाइल खोलें:
$ pod install
MessagingExample.xcworkspace
खोलें. इसके बाद, Firebase कंसोल में आगे बढ़ें पर क्लिक करें.
अपने ऐप्लिकेशन में Firebase को चालू करना
आपको अपने ऐप्लिकेशन में Firebase को शुरू करने वाला कोड जोड़ना होगा.
Firebase मॉड्यूल इंपोर्ट करें और शेयर किया गया इंस्टेंस कॉन्फ़िगर करें. क्विकस्टार्ट सैंपल में, Firebase मॉड्यूल पहले से इंपोर्ट किया गया है.
- अपने
UIApplicationDelegate
में Firebase मॉड्यूल इंपोर्ट करें:
AppDelegate.swift
import UIKit
import Firebase // Add this line
- FirebaseApp का शेयर किया गया इंस्टेंस कॉन्फ़िगर करें. आम तौर पर, यह आपके ऐप्लिकेशन के
application:didFinishLaunchingWithOptions:
तरीके में होता है:
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure() // Add this line
return true
}
- Firebase कंसोल में, आगे बढ़ें पर क्लिक करें.
- आपके ऐप्लिकेशन में Firebase SDK टूल जोड़ दिए गए हैं. कंसोल पर जाएं पर क्लिक करें.
5. FCM क्लाइंट को कॉन्फ़िगर करना
APNs की पुष्टि करने वाली कुंजी अपलोड करना
APNs की पुष्टि करने वाली कुंजी को Firebase पर अपलोड करें.
- Firebase कंसोल में अपने प्रोजेक्ट में जाकर, गियर आइकॉन चुनें. इसके बाद, प्रोजेक्ट सेटिंग चुनें. इसके बाद, Cloud Messaging टैब चुनें.
- Apple ऐप्लिकेशन कॉन्फ़िगरेशन में जाकर, APNs की पुष्टि करने वाला पासकोड पर जाएं. इसके बाद, अपलोड करें बटन पर क्लिक करके, डेवलपमेंट की पुष्टि करने वाला पासकोड या प्रोडक्शन की पुष्टि करने वाला पासकोड या दोनों अपलोड करें. कम से कम एक इमेज होनी चाहिए.
- उस जगह पर जाएं जहां आपने अपनी कुंजी सेव की है. इसके बाद, उसे चुनें और खोलें पर क्लिक करें. कुंजी के लिए कुंजी आईडी जोड़ें. यह आईडी, Apple Developer Member Center में Certificates, Identifiers & Profiles में उपलब्ध होता है. इसके बाद, Upload पर क्लिक करें.
रिमोट सूचनाओं के लिए रजिस्टर करना
स्टार्टअप के समय या ऐप्लिकेशन के फ़्लो में अपनी पसंद के पॉइंट पर, रिमोट सूचनाओं के लिए अपने ऐप्लिकेशन को रजिस्टर करें.
क्विकस्टार्ट सैंपल में, registerForRemoteNotifications
पहले से ही जोड़ा गया है.
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
// [START register for remote notifications]
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: {_, _ in })
} else {
let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
// [END register for remote notifications]
return true
}
AppDelegate.swift के आखिर में ये लाइनें जोड़कर, UNUserNotificationCenter
की डेलिगेट प्रॉपर्टी असाइन करें.
AppDelegate.swift
@available(iOS 10, *)
extension AppDelegate : UNUserNotificationCenterDelegate {
// Receive displayed notifications for iOS 10 devices.
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
// Print full message.
print(userInfo)
// Change this to your preferred presentation option
completionHandler([[.alert, .sound]])
}
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
// Print full message.
print(userInfo)
completionHandler()
}
}
मैसेजिंग डेलिगेट सेट करना
रजिस्ट्रेशन टोकन पाने के लिए, मैसेजिंग डेलिगेट प्रोटोकॉल लागू करें. साथ ही, [FIRApp configure]
को कॉल करने के बाद, FIRMessaging
की delegate
प्रॉपर्टी सेट करें. उदाहरण के लिए, अगर आपका ऐप्लिकेशन डेलिगेट, मैसेजिंग डेलिगेट प्रोटोकॉल के मुताबिक काम करता है, तो application:didFinishLaunchingWithOptions:
पर डेलिगेट को खुद पर सेट किया जा सकता है. क्विकस्टार्ट सैंपल में, यह पहले से सेट होता है.
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
Messaging.messaging().delegate = self // Add this line
// [START register for remote notifications]
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: {_, _ in })
} else {
let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
// [END register for remote notifications]
return true
}
AppDelegate.swift के आखिर में ये लाइनें जोड़कर, FIRMessaging
की डेलिगेट प्रॉपर्टी असाइन करें.
AppDelegate.swift
extension AppDelegate : MessagingDelegate {
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
print("Firebase registration token: \(String(describing: fcmToken))")
let dataDict:[String: String] = ["token": fcmToken ?? ""]
NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
}
}
सुविधाएं जोड़ना
आपने 'ऐप्लिकेशन आईडी बनाएं' सेक्शन में पुश नोटिफ़िकेशन की सुविधा जोड़ी है. हालांकि, आपको XCode में भी यह सुविधा जोड़नी होगी. इसके लिए, यह तरीका अपनाएं. यहां दिया गया तरीका XCode 12.3 के लिए है:
- नेविगेटर एरिया में, प्रोजेक्ट के नाम पर क्लिक करें.
- हस्ताक्षर और सुविधाएँ पर क्लिक करें.
- + क्षमता पर क्लिक करें.
- Background Modes पर दो बार क्लिक करें.
- + क्षमता पर फिर से क्लिक करें.
- पुश नोटिफ़िकेशन पर दो बार क्लिक करें.
- बैकग्राउंड मोड सेक्शन में जाकर, रिमोट नोटिफ़िकेशन की सेटिंग देखें.
6. सूचना वाला मैसेज भेजना
टेस्ट मैसेज भेजने के लिए, यह तरीका अपनाएं:
- टारगेट डिवाइस पर ऐप्लिकेशन इंस्टॉल करें और उसे चलाएं. आपको रिमोट सूचनाएं पाने की अनुमति देने का अनुरोध स्वीकार करना होगा.
- XCode लॉग में रजिस्ट्रेशन टोकन पाएं.
- पक्का करें कि डिवाइस पर ऐप्लिकेशन बैकग्राउंड में चल रहा हो.
- सूचना कंपोज़र खोलें और नई सूचना चुनें.
- मैसेज का टेक्स्ट डालें.
- जांच के लिए मैसेज भेजें को चुनें.
- FCM रजिस्ट्रेशन टोकन जोड़ें लेबल वाले फ़ील्ड में, वह रजिस्ट्रेशन टोकन डालें जो आपको दूसरे चरण में मिला था.
- परीक्षण करें पर क्लिक करें.
जांच करें पर क्लिक करने के बाद, टारगेट किए गए क्लाइंट डिवाइस (जिसमें ऐप्लिकेशन बैकग्राउंड में चल रहा हो) को सूचना केंद्र में सूचना मिलनी चाहिए.
आपके ऐप्लिकेशन पर मैसेज डिलीवर होने की जानकारी पाने के लिए, FCM रिपोर्टिंग डैशबोर्ड देखें. यह iOS और Android डिवाइसों पर भेजे गए और खोले गए मैसेज की संख्या रिकॉर्ड करता है.
7. बधाई हो
बधाई हो, आपने टेस्ट मैसेज भेज दिया है!
FCM में कई अन्य फ़ंक्शन और कॉन्फ़िगरेशन भी उपलब्ध हैं. जैसे, विषय की सदस्यता लेना.
अगर आपको इनके बारे में ज़्यादा जानना है, तो डेवलपर का आधिकारिक दस्तावेज़ देखें.
आगे क्या करना है?
इनमें से कुछ कोडलैब देखें.