बैकग्राउंड में चल रहे ऐप्लिकेशन को टेस्ट मैसेज भेजें

FCM के साथ शुरू करने के लिए, सबसे आसान इस्तेमाल का उदाहरण बनाएं: इसके बाद की सूचना पाने के लिए, डेवलपमेंट डिवाइस पर नोटिफ़िकेशन कंपोज़र जब ऐप्लिकेशन डिवाइस में बैकग्राउंड में चल रहा हो. इस पेज पर, सेटअप करने से लेकर पुष्टि करने तक के सभी चरणों की जानकारी दी गई है. — इसमें वे चरण भी शामिल हो सकते हैं जिन्हें आपने पहले ही पूरा कर लिया था. ऐसा होने पर, आपने Flutter ऐप्लिकेशन सेट अप किया हो FCM के लिए.

FCM प्लग इन इंस्टॉल करें

  1. Flutter के लिए Firebase SDK टूल को इंस्टॉल और शुरू करना अगर आपने पहले से ऐसा नहीं किया है.

  2. अपने Flutter प्रोजेक्ट के रूट से, इंस्टॉल करने के लिए नीचे दिया गया कमांड चलाएं प्लगिन:

    flutter pub add firebase_messaging
    
  3. यह प्रोसेस पूरी होने के बाद, अपना Flutter ऐप्लिकेशन फिर से बनाएं:

    flutter run
    

रजिस्ट्रेशन टोकन ऐक्सेस करना

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

किसी ऐप्लिकेशन इंस्टेंस का मौजूदा रजिस्ट्रेशन टोकन फिर से पाने के लिए, कॉल करें getToken(). अगर सूचना पाने की अनुमति नहीं दी गई है, तो इस तरीके से उपयोगकर्ता से सूचना की अनुमतियां मांगें. अगर ऐसा नहीं होता है, तो यह टोकन किसी गड़बड़ी की वजह से आने वाले समय को अस्वीकार कर देता है.

final fcmToken = await FirebaseMessaging.instance.getToken();

परीक्षण सूचना संदेश भेजें

  1. टारगेट डिवाइस पर ऐप्लिकेशन इंस्टॉल करें और चलाएं. Apple डिवाइसों पर, इन चीज़ों की ज़रूरत होगी रिमोट नोटिफ़िकेशन पाने के लिए अनुमति के अनुरोध को स्वीकार करें.

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

  3. Firebase कंसोल में, मैसेज सेवा पेज खोलें.

  4. अगर यह आपका पहला मैसेज है, तो अपना पहला मैसेज बनाएं चुनें कैंपेन बनाएं.

    1. Firebase सूचना मैसेज चुनें और बनाएं चुनें.
  5. या फिर, कैंपेन टैब पर नया कैंपेन चुनें और फिर सूचनाएं पर क्लिक करें.

  6. मैसेज का टेक्स्ट डालें. अन्य सभी फ़ील्ड ज़रूरी नहीं हैं.

  7. दाएं पैनल से, टेस्ट मैसेज भेजें को चुनें.

  8. FCM रजिस्ट्रेशन टोकन जोड़ें लेबल वाले फ़ील्ड में रजिस्ट्रेशन डालें इस गाइड के पिछले सेक्शन में मिला टोकन.

  9. जांचें को चुनें.

जांच करें चुनने के बाद, टारगेट किया गया क्लाइंट डिवाइस (जिसमें ऐप्लिकेशन बैकग्राउंड) पर सूचना भेजनी चाहिए.

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

इंटरैक्शन मैनेज करना

जब उपयोगकर्ता किसी सूचना पर टैप करेंगे, तो Android और iOS ऐप्लिकेशन को खोलना है. अगर ऐप्लिकेशन को रद्द कर दिया जाता है, तो इसे शुरू कर दिया जाएगा और अगर वह बैकग्राउंड में है, तो उसे फ़ोरग्राउंड में लाया जाएगा.

सूचना के कॉन्टेंट के आधार पर, हो सकता है कि आप ऐप्लिकेशन इस्तेमाल करने वाले व्यक्ति के इंटरैक्शन को मैनेज करना चाहें खोलें. उदाहरण के लिए, अगर सूचना का इस्तेमाल करके नया चैट मैसेज भेजा गया है और उपयोगकर्ता उसे चुन लेता है, तो ऐप्लिकेशन खुलने पर किसी खास बातचीत को खोलें.

firebase-messaging पैकेज में इस इंटरैक्शन को मैनेज करने के दो तरीके मौजूद हैं:

  1. getInitialMessage(): अगर ऐप्लिकेशन को बंद स्थिति से खोला जाता है, तो यह तरीका RemoteMessage वाला Future दिखाता है. इस्तेमाल करने पर, RemoteMessage को हटा दिया जाएगा.
  2. onMessageOpenedApp: एक Stream, जो किसी ऐप्लिकेशन से ऐप्लिकेशन खोले जाने पर, RemoteMessage को पोस्ट करता है बैकग्राउंड की स्थिति.

आपके उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, आपको दोनों स्थितियों को मैनेज करना चाहिए. कोड का उदाहरण ऐसा करने का तरीका नीचे बताया गया है:

class Application extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _Application();
}

class _Application extends State<Application> {
  // In this example, suppose that all messages contain a data field with the key 'type'.
  Future<void> setupInteractedMessage() async {
    // Get any messages which caused the application to open from
    // a terminated state.
    RemoteMessage? initialMessage =
        await FirebaseMessaging.instance.getInitialMessage();

    // If the message also contains a data property with a "type" of "chat",
    // navigate to a chat screen
    if (initialMessage != null) {
      _handleMessage(initialMessage);
    }

    // Also handle any interaction when the app is in the background via a
    // Stream listener
    FirebaseMessaging.onMessageOpenedApp.listen(_handleMessage);
  }

  void _handleMessage(RemoteMessage message) {
    if (message.data['type'] == 'chat') {
      Navigator.pushNamed(context, '/chat',
        arguments: ChatArguments(message),
      );
    }
  }

  @override
  void initState() {
    super.initState();

    // Run code required to handle interacted messages in an async function
    // as initState() must not be async
    setupInteractedMessage();
  }

  @override
  Widget build(BuildContext context) {
    return Text("...");
  }
}

ऐप्लिकेशन के सेटअप के आधार पर यह तय होता है कि इंटरैक्शन को कैसे मैनेज किया जाएगा. ऊपर दिया गया उदाहरण StatefulWidget इस्तेमाल करने का बुनियादी उदाहरण दिखाता है.

अगले चरण

फ़ोरग्राउंड में चलने वाले ऐप्लिकेशन पर मैसेज भेजें

अपने ऐप्लिकेशन के इस्तेमाल में होने के दौरान, सूचना वाले मैसेज भेजने के बाद बैकग्राउंड, देखें Flutter ऐप्लिकेशन में मैसेज पाना फ़ोरग्राउंड वाले ऐप्लिकेशन पर भेजना शुरू करने के लिए.

सूचना वाले मैसेज के अलावा अन्य सुविधाएं भी पाएं

अपने ऐप्लिकेशन में अन्य ऐडवांस सुविधाएं जोड़ने के लिए, आपको सर्वर लागू करना.

इसके बाद, अपने ऐप्लिकेशन क्लाइंट में: