पृष्ठभूमि वाले Apple ऐप पर एक परीक्षण संदेश भेजें

एफसीएम के साथ आरंभ करने के लिए, सबसे सरल उपयोग का मामला बनाएं: जब ऐप डिवाइस पर पृष्ठभूमि में हो तो नोटिफिकेशन कंपोजर से एक डेवलपमेंट डिवाइस पर एक परीक्षण अधिसूचना संदेश भेजना। यह पृष्ठ इसे प्राप्त करने के लिए सेटअप से लेकर सत्यापन तक सभी चरणों को सूचीबद्ध करता है - यदि आपने FCM के लिए Apple क्लाइंट ऐप सेट किया है तो इसमें आपके द्वारा पहले ही पूरे किए गए चरण शामिल हो सकते हैं।

अपने Apple प्रोजेक्ट में Firebase जोड़ें

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

आवश्यक शर्तें

  • निम्नलिखित स्थापित करें:

    • एक्सकोड 14.1 या बाद का संस्करण
  • सुनिश्चित करें कि आपका प्रोजेक्ट इन आवश्यकताओं को पूरा करता है:

    • आपके प्रोजेक्ट को इन प्लेटफ़ॉर्म संस्करणों या बाद के संस्करण को लक्षित करना चाहिए:
      • आईओएस 11
      • मैकओएस 10.13
      • टीवीओएस 12
      • वॉचओएस 6
  • अपना ऐप चलाने के लिए एक भौतिक Apple डिवाइस सेट करें और इन कार्यों को पूरा करें:

    • अपने Apple डेवलपर खाते के लिए Apple पुश अधिसूचना प्रमाणीकरण कुंजी प्राप्त करें।
    • ऐप > क्षमताओं के अंतर्गत XCode में पुश नोटिफिकेशन सक्षम करें।

यदि आपके पास पहले से कोई Xcode प्रोजेक्ट नहीं है और आप केवल Firebase उत्पाद आज़माना चाहते हैं, तो आप हमारे क्विकस्टार्ट नमूनों में से एक डाउनलोड कर सकते हैं।

एक फायरबेस प्रोजेक्ट बनाएं

इससे पहले कि आप अपने ऐप्पल ऐप में फ़ायरबेस जोड़ सकें, आपको अपने ऐप से कनेक्ट करने के लिए एक फ़ायरबेस प्रोजेक्ट बनाना होगा। फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए फायरबेस प्रोजेक्ट्स को समझें पर जाएँ।

अपने ऐप को फायरबेस के साथ पंजीकृत करें

अपने ऐप्पल ऐप में फ़ायरबेस का उपयोग करने के लिए, आपको अपने ऐप को अपने फ़ायरबेस प्रोजेक्ट के साथ पंजीकृत करना होगा। अपने ऐप को पंजीकृत करने को अक्सर अपने ऐप को अपने प्रोजेक्ट में "जोड़ना" कहा जाता है।

  1. फायरबेस कंसोल पर जाएं।

  2. प्रोजेक्ट अवलोकन पृष्ठ के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए iOS+ आइकन पर क्लिक करें।

    यदि आपने पहले से ही अपने फायरबेस प्रोजेक्ट में एक ऐप जोड़ा है, तो प्लेटफ़ॉर्म विकल्प प्रदर्शित करने के लिए ऐप जोड़ें पर क्लिक करें।

  3. बंडल आईडी फ़ील्ड में अपने ऐप की बंडल आईडी दर्ज करें।

  4. (वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और ऐप स्टोर आईडी

  5. ऐप रजिस्टर करें पर क्लिक करें.

एक फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें

  1. अपनी फायरबेस Apple प्लेटफ़ॉर्म कॉन्फ़िगरेशन फ़ाइल ( GoogleService-Info.plist ) प्राप्त करने के लिए GoogleService-Info.plist डाउनलोड करें पर क्लिक करें।

  2. अपनी कॉन्फ़िग फ़ाइल को अपने Xcode प्रोजेक्ट के रूट में ले जाएँ। यदि संकेत दिया जाए, तो सभी लक्ष्यों में कॉन्फ़िगरेशन फ़ाइल जोड़ने का चयन करें।

यदि आपके प्रोजेक्ट में एकाधिक बंडल आईडी हैं, तो आपको प्रत्येक बंडल आईडी को फायरबेस कंसोल में एक पंजीकृत ऐप के साथ जोड़ना होगा ताकि प्रत्येक ऐप की अपनी GoogleService-Info.plist फ़ाइल हो सके।

अपने ऐप में फायरबेस एसडीके जोड़ें

फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।

  1. Xcode में, अपना ऐप प्रोजेक्ट खुला होने पर, फ़ाइल > पैकेज जोड़ें पर नेविगेट करें।
  2. संकेत मिलने पर, Firebase Apple प्लेटफ़ॉर्म SDK रिपॉजिटरी जोड़ें:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. फायरबेस क्लाउड मैसेजिंग लाइब्रेरी चुनें।
  5. अपने लक्ष्य की बिल्ड सेटिंग्स के अन्य लिंकर फ़्लैग अनुभाग में -ObjC फ़्लैग जोड़ें।
  6. फायरबेस क्लाउड मैसेजिंग के साथ एक इष्टतम अनुभव के लिए, हम आपके फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करने और अपने ऐप में Google Analytics के लिए फायरबेस एसडीके जोड़ने की सलाह देते हैं। आप या तो आईडीएफए संग्रह के बिना या आईडीएफए संग्रह के साथ लाइब्रेरी का चयन कर सकते हैं।
  7. समाप्त होने पर, Xcode स्वचालित रूप से पृष्ठभूमि में आपकी निर्भरता को हल करना और डाउनलोड करना शुरू कर देगा।

अपनी एपीएन प्रमाणीकरण कुंजी अपलोड करें

अपनी APNs प्रमाणीकरण कुंजी को Firebase पर अपलोड करें। यदि आपके पास पहले से APNs प्रमाणीकरण कुंजी नहीं है, तो Apple डेवलपर सदस्य केंद्र में एक बनाना सुनिश्चित करें।

  1. फायरबेस कंसोल में अपने प्रोजेक्ट के अंदर, गियर आइकन चुनें, प्रोजेक्ट सेटिंग्स चुनें और फिर क्लाउड मैसेजिंग टैब चुनें।

  2. iOS ऐप कॉन्फ़िगरेशन के अंतर्गत APNs प्रमाणीकरण कुंजी में, अपलोड बटन पर क्लिक करें।

  3. उस स्थान पर ब्राउज़ करें जहां आपने अपनी कुंजी सहेजी थी, उसे चुनें और खोलें पर क्लिक करें। कुंजी के लिए कुंजी आईडी जोड़ें ( Apple डेवलपर सदस्य केंद्र में उपलब्ध) और अपलोड पर क्लिक करें।

अपने ऐप में फ़ायरबेस प्रारंभ करें

आपको अपने एप्लिकेशन में फ़ायरबेस इनिशियलाइज़ेशन कोड जोड़ना होगा। फ़ायरबेस मॉड्यूल आयात करें और दिखाए गए अनुसार एक साझा इंस्टेंस कॉन्फ़िगर करें:

  1. अपने UIApplicationDelegate में FirebaseCore मॉड्यूल को आयात करें, साथ ही आपके ऐप प्रतिनिधि द्वारा उपयोग किए जाने वाले किसी भी अन्य Firebase मॉड्यूल को आयात करें। उदाहरण के लिए, क्लाउड फायरस्टोर और प्रमाणीकरण का उपयोग करने के लिए:

    स्विफ्टयूआई

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    तीव्र

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    उद्देश्य सी

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. अपने ऐप प्रतिनिधि के application(_:didFinishLaunchingWithOptions:) विधि में FirebaseApp साझा किए गए इंस्टेंस को कॉन्फ़िगर करें:

    स्विफ्टयूआई

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    तीव्र

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    उद्देश्य सी

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. यदि आप स्विफ्टयूआई का उपयोग कर रहे हैं, तो आपको एक एप्लिकेशन प्रतिनिधि बनाना होगा और इसे UIApplicationDelegateAdaptor या NSApplicationDelegateAdaptor के माध्यम से अपने App स्ट्रक्चर में संलग्न करना होगा। आपको ऐप डेलीगेट स्विज़लिंग को भी अक्षम करना होगा। अधिक जानकारी के लिए स्विफ्टयूआई निर्देश देखें।

    स्विफ्टयूआई

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

दूरस्थ सूचनाओं के लिए पंजीकरण करें

या तो स्टार्टअप पर, या अपने एप्लिकेशन प्रवाह में वांछित बिंदु पर, दूरस्थ सूचनाओं के लिए अपने ऐप को पंजीकृत करें। दिखाए गए अनुसार registerForRemoteNotifications पर कॉल करें:

तीव्र


UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
  options: authOptions,
  completionHandler: { _, _ in }
)

application.registerForRemoteNotifications()

उद्देश्य सी


[UNUserNotificationCenter currentNotificationCenter].delegate = self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
    UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
    requestAuthorizationWithOptions:authOptions
    completionHandler:^(BOOL granted, NSError * _Nullable error) {
      // ...
    }];

[application registerForRemoteNotifications];

पंजीकरण टोकन तक पहुंचें

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

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

जिस तरह से ऐप्पल प्लेटफ़ॉर्म आम तौर पर ऐप स्टार्ट पर एपीएन डिवाइस टोकन प्रदान करता है, उसी तरह एफसीएम FIRMessagingDelegate के messaging:didReceiveRegistrationToken: विधि के माध्यम से एक पंजीकरण टोकन प्रदान करता है। एफसीएम एसडीके प्रारंभिक ऐप लॉन्च के दौरान और जब भी टोकन अपडेट या अमान्य हो जाता है, तो एक नया या मौजूदा टोकन पुनर्प्राप्त करता है। सभी मामलों में, FCM SDK एक वैध टोकन के साथ messaging:didReceiveRegistrationToken: कॉल करता है।

पंजीकरण टोकन तब बदल सकता है जब:

  • ऐप को एक नए डिवाइस पर पुनर्स्थापित किया गया है
  • उपयोगकर्ता ऐप को अनइंस्टॉल/पुनः इंस्टॉल करता है
  • उपयोगकर्ता ऐप डेटा साफ़ करता है.

मैसेजिंग प्रतिनिधि सेट करें

पंजीकरण टोकन प्राप्त करने के लिए, मैसेजिंग प्रतिनिधि प्रोटोकॉल लागू करें और [FIRApp configure] कॉल करने के बाद FIRMessaging की delegate संपत्ति सेट करें। उदाहरण के लिए, यदि आपका एप्लिकेशन प्रतिनिधि मैसेजिंग प्रतिनिधि प्रोटोकॉल के अनुरूप है, तो आप प्रतिनिधि को application:didFinishLaunchingWithOptions: पर स्वयं सेट कर सकते हैं।

तीव्र

Messaging.messaging().delegate = self

उद्देश्य सी

[FIRMessaging messaging].delegate = self;

वर्तमान पंजीकरण टोकन प्राप्त किया जा रहा है

पंजीकरण टोकन messaging:didReceiveRegistrationToken: विधि के माध्यम से वितरित किए जाते हैं। इस विधि को आम तौर पर प्रति ऐप पंजीकरण टोकन के साथ शुरू होने पर बुलाया जाता है। जब इस विधि को बुलाया जाता है, तो यह आदर्श समय है:

  • यदि पंजीकरण टोकन नया है, तो इसे अपने एप्लिकेशन सर्वर पर भेजें।
  • विषयों के लिए पंजीकरण टोकन की सदस्यता लें। यह केवल नई सदस्यताओं के लिए या उन स्थितियों के लिए आवश्यक है जहां उपयोगकर्ता ने ऐप को फिर से इंस्टॉल किया है।

आप टोकन(पूर्णता:) का उपयोग करके सीधे टोकन पुनः प्राप्त कर सकते हैं। यदि टोकन पुनर्प्राप्ति किसी भी तरह विफल हो जाती है तो एक गैर शून्य त्रुटि प्रदान की जाती है।

तीव्र

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

उद्देश्य सी

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];

आप टोकन को संग्रहीत करने के बजाय उस तक पहुंचने के लिए किसी भी समय इस पद्धति का उपयोग कर सकते हैं।

मॉनिटर टोकन ताज़ा करें

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

तीव्र

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
  )
  // TODO: If necessary send token to application server.
  // Note: This callback is fired at each app startup and whenever a new token is generated.
}

उद्देश्य सी

- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
    NSLog(@"FCM registration token: %@", fcmToken);
    // Notify about received token.
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];
    [[NSNotificationCenter defaultCenter] postNotificationName:
     @"FCMToken" object:nil userInfo:dataDict];
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

वैकल्पिक रूप से, आप एक प्रतिनिधि विधि की आपूर्ति करने के बजाय kFIRMessagingRegistrationTokenRefreshNotification नामक NSNotification को सुन सकते हैं। टोकन संपत्ति में हमेशा वर्तमान टोकन मूल्य होता है।

एक सूचना संदेश भेजें

  1. लक्ष्य डिवाइस पर ऐप इंस्टॉल करें और चलाएं। Apple उपकरणों पर, आपको दूरस्थ सूचनाएं प्राप्त करने की अनुमति के लिए अनुरोध स्वीकार करना होगा।

  2. सुनिश्चित करें कि ऐप डिवाइस के बैकग्राउंड में है।

  3. फायरबेस कंसोल में, मैसेजिंग पेज खोलें।

  4. यदि यह आपका पहला संदेश है, तो अपना पहला अभियान बनाएं चुनें.

    1. फायरबेस अधिसूचना संदेश चुनें और बनाएं चुनें।
  5. अन्यथा, अभियान टैब पर, नया अभियान और फिर सूचनाएं चुनें।

  6. संदेश पाठ दर्ज करें. अन्य सभी फ़ील्ड वैकल्पिक हैं.

  7. दाएँ फलक से परीक्षण संदेश भेजें का चयन करें।

  8. FCM पंजीकरण टोकन जोड़ें लेबल वाले फ़ील्ड में, इस गाइड के पिछले अनुभाग में प्राप्त पंजीकरण टोकन दर्ज करें।

  9. परीक्षण का चयन करें.

आपके द्वारा परीक्षण का चयन करने के बाद, लक्षित क्लाइंट डिवाइस (पृष्ठभूमि में ऐप के साथ) को अधिसूचना प्राप्त होनी चाहिए।

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

अगले कदम

अधिसूचना संदेशों से आगे जाने और अपने ऐप में अन्य, अधिक उन्नत व्यवहार जोड़ने के लिए, देखें: