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

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

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

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

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

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

    • एक्सकोड 12.2 या बाद में
    • CocoaPods 1.10.0 या बाद में
  • सुनिश्चित करें कि आपकी परियोजना इन आवश्यकताओं को पूरा करती है:

    • आपका प्रोजेक्ट iOS 10 या बाद के संस्करण को लक्षित करना चाहिए।
  • आपके अनुप्रयोग चलाने के लिए एक भौतिक IOS डिवाइस सेट करें, और इन कार्यों को पूरा:

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

आप पहले से ही एक Xcode प्रोजेक्ट नहीं है, तो और सिर्फ एक Firebase उत्पाद बाहर की कोशिश करना चाहते हैं, तो आप हमारे में से एक डाउनलोड कर सकते हैं त्वरित प्रारंभ नमूने

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

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

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

आपके पास Firebase प्रोजेक्ट होने के बाद, आप इसमें अपना iOS ऐप जोड़ सकते हैं।

यात्रा समझे Firebase परियोजनाओं एक Firebase परियोजना के लिए ऐप्लिकेशन जोड़ने, कैसे कई निर्माण वेरिएंट को संभालने के लिए सहित के लिए सर्वोत्तम प्रथाओं और विचारों के बारे में अधिक जानने के लिए।

  1. पर जाएं Firebase कंसोल

  2. परियोजना अवलोकन पृष्ठ के केंद्र में, आईओएस आइकन (क्लिक सेटअप कार्यप्रवाह शुरू करने के लिए)।

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

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

  4. अनुप्रयोग उपनाम और App स्टोर ID: (वैकल्पिक) अन्य एप्लिकेशन जानकारी दर्ज करें।

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

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

  1. अपने Firebase आईओएस कॉन्फ़िग फ़ाइल (प्राप्त करने के लिए डाउनलोड GoogleService-Info.plist क्लिक करें GoogleService-Info.plist )।

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

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

अपने ऐप्लिकेशन में Firebase SDK टूल जोड़ें

हम उपयोग करने की अनुशंसा CocoaPods Firebase पुस्तकालयों स्थापित करने के लिए। हालांकि, अगर आप बल्कि CocoaPods का उपयोग नहीं हैं, तो आप कर सकते हैं एसडीके चौखटे सीधे एकीकृत या का उपयोग स्विफ्ट पैकेज प्रबंधक बजाय।

आप में से एक का उपयोग कर रहे त्वरित प्रारंभ नमूने ? Xcode प्रोजेक्ट और Podfile (फली) के साथ पहले से ही मौजूद हैं, लेकिन आप अभी भी करने की आवश्यकता होगी अपने Firebase विन्यास फाइल जोड़ने फली और स्थापित करें।

  1. यदि आपके पास पहले से एक पॉडफाइल नहीं है तो एक पॉडफाइल बनाएं:

    cd your-project-directory
    pod init
  2. अपने पॉडफाइल में, वे फायरबेस पॉड्स जोड़ें जिनका आप अपने ऐप में उपयोग करना चाहते हैं।

    आप में से किसी में जोड़ सकते हैं समर्थित Firebase उत्पादों अपने iOS एप्लिकेशन के लिए।

    Firebase क्लाउड संदेश के साथ इष्टतम अनुभव के लिए, हम अनुशंसा करते गूगल एनालिटिक्स को सक्षम करने के अपने प्रोजेक्ट में। साथ ही, Analytics सेट अप करने के भाग के रूप में, आपको अपने ऐप्लिकेशन में Analytics के लिए Firebase SDK जोड़ना होगा।

    एनालिटिक्स सक्षम

    # Add the Firebase pod for Google Analytics
    pod 'Firebase/Analytics'
    
    # For Analytics without IDFA collection capability, use this pod instead
    # pod ‘Firebase/AnalyticsWithoutAdIdSupport’
    
    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'

    IDFA, डिवाइस स्तर विज्ञापन पहचानकर्ता, एप्पल के में बारे में और जानें उपयोगकर्ता गोपनीयता और डेटा का उपयोग करें और एप्लिकेशन ट्रैकिंग पारदर्शिता प्रलेखन।

    एनालिटिक्स सक्षम नहीं है

    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'
  3. फली स्थापित करें, तो अपने को खोलने .xcworkspace Xcode में परियोजना को देखने के लिए फ़ाइल:

    pod install
    open your-project.xcworkspace

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

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

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

  2. IOS अनुप्रयोग विन्यास के तहत APN के प्रमाणीकरण कुंजी में, अपलोड बटन क्लिक करें।

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

अपने ऐप में फायरबेस को इनिशियलाइज़ करें

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

  1. अपने में Firebase मॉड्यूल आयात UIApplicationDelegate :

    तीव्र

    import Firebase

    उद्देश्य सी

    @import Firebase;
  2. कॉन्फ़िगर एक FirebaseApp , उदाहरण के साझा आम तौर पर यदि आपके ऐप की में application:didFinishLaunchingWithOptions: विधि:

    तीव्र

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

    उद्देश्य सी

    // Use Firebase library to configure APIs
    [FIRApp configure];

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

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

तीव्र

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()

उद्देश्य सी

if ([UNUserNotificationCenter class] != nil) {
  // iOS 10 or later
  // For iOS 10 display notification (sent via APNS)
  [UNUserNotificationCenter currentNotificationCenter].delegate = self;
  UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
      UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
  [[UNUserNotificationCenter currentNotificationCenter]
      requestAuthorizationWithOptions:authOptions
      completionHandler:^(BOOL granted, NSError * _Nullable error) {
        // ...
      }];
} else {
  // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
  UIUserNotificationType allNotificationTypes =
  (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
  UIUserNotificationSettings *settings =
  [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
  [application registerUserNotificationSettings:settings];
}

[application registerForRemoteNotifications];

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

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

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

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

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

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

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

पंजीकरण टोकन प्राप्त करने के लिए, संदेश प्रतिनिधि प्रोटोकॉल और सेट को लागू FIRMessaging के delegate बुला के बाद संपत्ति [FIRApp configure] । उदाहरण के लिए, आपके आवेदन प्रतिनिधि मैसेजिंग प्रतिनिधि प्रोटोकॉल के अनुरूप है, तो आप प्रतिनिधि पर सेट कर सकते हैं 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.
}

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

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

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

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

  3. खोलें सूचनाएं संगीतकार और नई अधिसूचना का चयन करें।

  4. संदेश पाठ दर्ज करें।

  5. भेजें परीक्षण संदेश का चयन करें।

  6. खाने में एक FCM पंजीकरण टोकन जोड़ें, टोकन आपको इस मार्गदर्शिका के एक पिछले अनुभाग में प्राप्त पंजीकरण दर्ज करें।

  7. टेस्ट के लिए क्लिक करें

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

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

अगला कदम

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