التعامل مع استقبال الاشعارات من Firebase في تطبيقات فلاتر | Receive notifications from FCM Flutter

التعامل مع استقبال الاشعارات من Firebase في تطبيقات فلاتر | Receive notifications from FCM Flutter

التعامل مع استقبال الاشعارات من Firebase في تطبيقات فلاتر | Receive notifications from FCM Flutter

هذا الدرس تكملة لسلسلة التعامل مع firebase باستخدام Flutter حيث اننا في هذا الدرس سوف نشرح معكم كيف تقوم باستقبال الاشعارات في تطبيقك بعدة اشكال في حالة اذا كان التطبيق مغلق بشكل كامل واذا كان التطبيق الخاص بك في وضع السكون او كان التطبيق الخاص بك مفتوح فكل حاله لها تعامل خاص في تطبيقك حيث سوف نشرح معكم في هذه المقالة التعامل مع الحالات المختلفه في تطبيقك حيث لا يحدث معك اي مشاكل مستقبله في التعامل مع الاشعارات بانواعها المختلفه .

الإشعارات هي طريقة فعالة لجذب انتباه المستخدمين وإبقائهم على اطلاع بأحدث المعلومات من تطبيقك. في تطبيقات Flutter، يمكننا استخدام خدمة الإشعارات من Google Cloud (FCM) لإرسال إشعارات إلى المستخدمين ,  تطبيقات فلاتر: Flutter هي لغة برمجة مفتوحة المصدر تستخدم لتطوير تطبيقات الهاتف الجوال والويب , يمكن استخدام Flutter لتطوير تطبيقات الهاتف الجوال والويب.


ما هي خدمة الإشعارات من Google Cloud (FCM)؟

خدمة الإشعارات من Google Cloud (FCM) هي خدمة سحابية تتيح للمطورين إرسال إشعارات إلى المستخدمين عبر الأجهزة المحمولة. يمكن استخدام FCM لإرسال إشعارات إلى أجهزة Android و iOS و Web.


كيفية استخدام FCM في Flutter

لاستخدام FCM في Flutter، نحتاج إلى إنشاء حساب في Google Cloud Platform وإنشاء مشروع. بعد إنشاء المشروع، يمكننا تثبيت حزمة firebase_messaging من pub.dev.


انواع الوظائف المختلفه عند وصول اشعار في تطبيقك وكيفية التعامل معه في Flutter

getInitialMessage : تعمل هذه الداله في حالة ان التطبيق الخاص بك مغلق بشكل كامل وليس في السكون بمعنى اصح تعمل اذا كان تطبيقك في kill background .


onMessage : تعمل هذه الدالة في حالة اذا كان التطبيق الخاص بك مفتوح وليس مغلق


onMessageOpenedApp : تعمل اذا اصبح تطبيقك في حالة onResume وهيا الحالة التي تعمل في وضع التطبيق الخاص بك رجع من السكون .

انواع الوظائف المختلفه عند وصول اشعار في تطبيقك وكيفية التعامل معه في Flutter

fun.dart


// workaround for onLaunch: When the app is completely closed
    FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage message) {
      print('getInitialMessage data: ${message.data}');
      _serialiseAndNavigate(message);
    });

    // onMessage: When the app is open and it receives a push notification
    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      print("onMessage data: ${message.data}");
    });

    // replacement for onResume:
    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
      print('onMessageOpenedApp data: ${message.data}');
      _serialiseAndNavigate(message);
    });
    

التعامل مع وصول الاشعارات في حالة اذا كان التطبيق مغلق بشكل كامل في مشروعك بفلاتر

ايضا لكي يعمل التطبيق الخاص بك في الخلفيه عليك بوضع الاكواد التاليه في صفحة main فهي المسؤوله ايضا عن استقبال الاشعارات في حالة ال background حتى لا يحدث معك مشاكل .


التعامل مع وصول الاشعارات في حالة اذا كان التطبيق مغلق بشكل كامل في مشروعك بفلاتر

background.dart


Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  NotificationService().showNotification(message.notification!);
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await sl.init();

  FirebaseMessaging.onBackgroundMessage(
      firebaseMessagingBackgroundHandler);

  runApp(MyApp());
}

اذا كان لديك مشكلة في استقبال الايقونه يمكنك اضافة الاكواد التاليه في الامكان المناسبه كما هو موضح بالصورة حتى تضمن ان لا يحدث معك مشاكل في عملية الاستقبال

التعامل مع استقبال الاشعارات من Firebase في تطبيقات فلاتر | Receive notifications from FCM Flutter

واذا كنت تواجه مشكلة في عدم عرض الصورة المخصصه في الاشعارات وعرض الاشعار بشكل افتراضي يمكنك حذف عباره notification من url الخاص بال api الذي تقوم من خلاله بارسال الاشعارات .

تعليقات