একটি ব্যাকগ্রাউন্ডেড অ্যাপে একটি পরীক্ষার বার্তা পাঠান

FCM-এর সাথে শুরু করার জন্য, সবচেয়ে সহজ ব্যবহারের ক্ষেত্রে তৈরি করুন: যখন অ্যাপটি ডিভাইসে ব্যাকগ্রাউন্ডে থাকে তখন একটি ডেভেলপমেন্ট ডিভাইসে নোটিফিকেশন কম্পোজার থেকে একটি পরীক্ষার বিজ্ঞপ্তি বার্তা পাঠানো। এই পৃষ্ঠাটি সেটআপ থেকে যাচাইকরণ পর্যন্ত এটি অর্জনের সমস্ত পদক্ষেপের তালিকা করে — আপনি যদি FCM-এর জন্য একটি Flutter অ্যাপ সেট আপ করে থাকেন তবে এটি আপনার ইতিমধ্যে সম্পন্ন করা পদক্ষেপগুলি কভার করতে পারে।

FCM প্লাগইন ইনস্টল করুন

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ফ্লটারের জন্য Firebase SDK ইনস্টল করুন এবং শুরু করুন

  2. আপনার ফ্লাটার প্রকল্পের মূল থেকে, প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_messaging
    
  3. একবার সম্পূর্ণ হয়ে গেলে, আপনার ফ্লাটার অ্যাপ্লিকেশন পুনর্নির্মাণ করুন:

    flutter run
    

নিবন্ধন টোকেন অ্যাক্সেস করুন

একটি নির্দিষ্ট ডিভাইসে একটি বার্তা পাঠাতে, আপনাকে সেই ডিভাইসের নিবন্ধন টোকেন জানতে হবে। যেহেতু এই টিউটোরিয়ালটি সম্পূর্ণ করার জন্য আপনাকে বিজ্ঞপ্তি কনসোলের একটি ক্ষেত্রে টোকেনটি প্রবেশ করতে হবে, টোকেনটি কপি করতে ভুলবেন না বা আপনি এটি পুনরুদ্ধার করার পরে নিরাপদে সংরক্ষণ করুন৷

একটি অ্যাপ ইন্সট্যান্সের জন্য বর্তমান রেজিস্ট্রেশন টোকেন পুনরুদ্ধার করতে, getToken() কল করুন। যদি বিজ্ঞপ্তির অনুমতি না দেওয়া হয়, তাহলে এই পদ্ধতি ব্যবহারকারীকে বিজ্ঞপ্তির অনুমতি চাইবে৷ অন্যথায়, এটি একটি টোকেন ফেরত দেয় বা একটি ত্রুটির কারণে ভবিষ্যতে প্রত্যাখ্যান করে।

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

একটি পরীক্ষা বিজ্ঞপ্তি বার্তা পাঠান

  1. লক্ষ্য ডিভাইসে অ্যাপটি ইনস্টল করুন এবং চালান। Apple ডিভাইসগুলিতে, আপনাকে দূরবর্তী বিজ্ঞপ্তিগুলি পাওয়ার অনুমতির অনুরোধটি গ্রহণ করতে হবে৷

  2. অ্যাপটি ডিভাইসে ব্যাকগ্রাউন্ডে আছে তা নিশ্চিত করুন।

  3. Firebase কনসোলে, মেসেজিং পৃষ্ঠা খুলুন।

  4. যদি এটি আপনার প্রথম বার্তা হয়, আপনার প্রথম প্রচারাভিযান তৈরি করুন নির্বাচন করুন।

    1. Firebase বিজ্ঞপ্তি বার্তা নির্বাচন করুন এবং তৈরি করুন নির্বাচন করুন।
  5. অন্যথায়, প্রচারাভিযান ট্যাবে, নতুন প্রচারাভিযান এবং তারপরে বিজ্ঞপ্তি নির্বাচন করুন।

  6. বার্তা টেক্সট লিখুন. অন্যান্য সমস্ত ক্ষেত্রগুলি ঐচ্ছিক।

  7. ডান ফলক থেকে পরীক্ষা বার্তা পাঠান নির্বাচন করুন।

  8. একটি FCM রেজিস্ট্রেশন টোকেন যুক্ত করুন লেবেলযুক্ত ক্ষেত্রে, এই গাইডের পূর্ববর্তী বিভাগে আপনি যে নিবন্ধন টোকেন পেয়েছেন তা লিখুন।

  9. পরীক্ষা নির্বাচন করুন।

আপনি পরীক্ষা নির্বাচন করার পরে, লক্ষ্যযুক্ত ক্লায়েন্ট ডিভাইস (পটভূমিতে অ্যাপ সহ) বিজ্ঞপ্তিটি পাবে।

আপনার অ্যাপে বার্তা বিতরণের অন্তর্দৃষ্টির জন্য, এফসিএম রিপোর্টিং ড্যাশবোর্ড দেখুন, যা অ্যাপল এবং অ্যান্ড্রয়েড ডিভাইসে পাঠানো এবং খোলা বার্তাগুলির সংখ্যা রেকর্ড করে, সাথে 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 ব্যবহার করার একটি মৌলিক উদাহরণ দেখায়।

পরবর্তী পদক্ষেপ

ফোরগ্রাউন্ডেড অ্যাপে বার্তা পাঠান

আপনার অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন আপনি সফলভাবে বিজ্ঞপ্তি বার্তাগুলি পাঠানোর পরে, ফোরগ্রাউন্ডেড অ্যাপগুলিতে পাঠানো শুরু করতে একটি ফ্লাটার অ্যাপে বার্তা গ্রহণ করুন দেখুন।

বিজ্ঞপ্তি বার্তার বাইরে যান

আপনার অ্যাপে অন্যান্য, আরও উন্নত আচরণ যোগ করতে, আপনার একটি সার্ভার বাস্তবায়নের প্রয়োজন হবে।

তারপর, আপনার অ্যাপ ক্লায়েন্টে: