إرسال إشعارات Android عبر Firebase Cloud Messaging

مؤلف: Louise Ward
تاريخ الخلق: 4 شهر فبراير 2021
تاريخ التحديث: 18 قد 2024
Anonim
إرسال الإشعارات من الفير بيسA-031 Notifications Firebase Cloud Messaging Android
فيديو: إرسال الإشعارات من الفير بيسA-031 Notifications Firebase Cloud Messaging Android

المحتوى


على الرغم من أنه يتجاوز نطاق هذا البرنامج التعليمي ، يمكنك أيضًا استخدام FCM للإشعارات الأولية ، حيث تتلقى FCM رسالة من تطبيق العميل ، أو لإعلام التطبيق الخاص بك عندما تكون هناك بيانات جديدة متاحة لتنزيلها. وبهذه الطريقة ، يمكنك التأكد من أن الاتصال بين خادم التطبيق الخاص بك وتطبيق العميل يحدث فقط عند الضرورة ، وهو أكثر كفاءة من تطبيق العميل الذي يتصل بالخادم على فترات منتظمة ، في حالة عدم توفر بعض البيانات الجديدة المتاحة.

نظرًا لأن FCM جزء من Firebase ، فإنه يلعب أيضًا بشكل جيد مع خدمات Firebase الأخرى. بمجرد أن تتقن أساسيات FCM ، قد ترغب في استخدام اختبار A / B لتحديد الإخطارات الأكثر فعالية ، أو استخدام Firebase التنبؤات لتطبيق التعلم الآلي القوي على جميع بيانات التحليلات التي تم إنشاؤها من حملات FCM المختلفة الخاصة بك.

يدعم FCM نوعين من s:

  • الإخطار سيتصرف تطبيق العميل بشكل مختلف اعتمادًا على ما إذا كان في الخلفية أو المقدمة عندما يتلقى FCM. إذا كان تطبيقك موجودًا في الخلفية ، فسيقوم Firebase SDK تلقائيًا بمعالجة وعرضه كإشعار في علبة النظام بالجهاز. نظرًا لأن نظام Android يقوم بإنشاء الإشعارات نيابة عنك ، فهذه إحدى أسهل الطرق لإرسال إشعارات الدفع إلى المستخدمين. إذا تلقى تطبيقك FCM أثناء وجوده في المقدمة ، فعندئذ النظام متعود تعامل مع هذا الإشعار تلقائيًا ، مما يتيح لك معالجة رد الاتصال onReceived () في تطبيقك. سنستكشف onReceived () لاحقًا في هذا البرنامج التعليمي ، ولكن في الوقت الحالي ، عليك فقط أن تدرك أنه إذا تلقى تطبيقك بعض الوقت في المقدمة ، فلن يتم عرض ذلك افتراضيًا للمستخدم.
  • بيانات s. بخلاف الإشعارات ، يمكنك استخدام البيانات لإرسال عناصر البيانات المخصصة إلى تطبيق العميل. ومع ذلك ، تضع FCM حدًا قدره 4 كيلوبايت على هذه البيانات ، لذلك إذا كانت حمولتك تتجاوز 4 كيلو بايت ، فستحتاج إلى جلب البيانات الإضافية باستخدام WorkManager أو API JobScheduler.

في هذا البرنامج التعليمي ، سنركز على الإشعارات.


ماذا عن Google Cloud Messaging؟

إذا كنت تستخدم خادم Google Cloud Messaging (GCM) وواجهة برمجة التطبيقات للعميل ، فهناك بعض الأخبار السيئة: لقد تم إهمال هذه الخدمة بالفعل وتخطط Google لإيقاف تشغيل "معظم" خدمات GCM في أبريل 2019. إذا كنت لا تزال باستخدام GCM ، يجب أن تبدأ في ترحيل مشاريعك إلى FCM الآن ، ويجب أن تكمل عملية الترحيل بحلول أبريل 2019.

إضافة Firebase إلى مشروع Android الخاص بك

دعونا نرى مدى سهولة إضافة دعم FCM الأساسي إلى تطبيقك ، ثم استخدامه لإرسال إشعارات الدفع إلى المستخدمين.

نظرًا لأن FCM هي خدمة Firebase ، فستحتاج إلى إضافة Firebase إلى تطبيقك:

  • توجه إلى Firebase Console.
  • حدد "إضافة مشروع" ، واسمه لمشروعك.
  • قراءة الشروط والأحكام. إذا كنت سعيدًا بالمتابعة ، فحدد "أوافق ..." ثم "إنشاء مشروع".
  • حدد "إضافة Firebase إلى تطبيق Android الخاص بك."
  • أدخل اسم حزمة مشروعك ، ثم انقر فوق "تسجيل التطبيق".
  • حدد "تنزيل google-services.json".
  • في Android Studio ، اسحب وإسقط ملف google-services.json في دليل "تطبيق" مشروعك.
  • افتح ملف build.gradle على مستوى المشروع وأضف ما يلي:

classpath com.google.gms: google-services: 4.0.1

  • افتح ملف build.gradle على مستوى التطبيق الخاص بك ، وقم بإضافة مكون خدمات Google الإضافي ، بالإضافة إلى تبعيات Firebase Core و FCM:

// إضافة المكوّن الإضافي لـ Google services // application plugin: com.google.gms.google-services… ... ... تبعيات {application fileTree (dir: libs، include:) // Add Firebase Core // implementation com.google.firebase: firebase-core: 16.0.1 // Add FCM // implementation com.google.firebase: firebase-messaging: 17.3.4

  • عند المطالبة ، قم بمزامنة التغييرات الخاصة بك.
  • بعد ذلك ، يلزمك إخبار Firebase Console بأنك نجحت في إضافة Firebase إلى مشروعك. قم بتثبيت تطبيقك على هاتف ذكي أو جهاز لوحي يعمل بنظام Android ، أو على جهاز Android الظاهري (AVD).
  • مرة أخرى في Firebase Console ، حدد "تشغيل التطبيق للتحقق من التثبيت."
  • بمجرد اكتشاف Firebase لتطبيقك ، سترى "مبروك". حدد "متابعة إلى وحدة التحكم".

إرسال أول إشعار الدفع الخاص بك مع Firebase

وهذا كل شيء! يمكنك الآن إرسال إشعار بالدفع إلى المستخدمين ، وسيظهر هذا الإشعار في علبة النظام بالجهاز (في الوقت الحالي ، لنفترض أن تطبيقك ليس في المقدمة عندما يتم تسليمه).


يمكنك إنشاء إشعارات FCM باستخدام Notifications Composer ، والذي يتوفر عبر Firebase Console:

  • تأكد من تثبيت التطبيق وتشغيله في الخلفية ، وأن جهازك يحتوي على اتصال إنترنت نشط.
  • في Firebase Console ، حدد "المراسلة في السحاب" من القائمة اليمنى.

  • اختر "أرسل الأول".
  • أعط عنوانًا ونصًا أساسيًا ، ثم انقر فوق "التالي".

  • افتح القائمة المنسدلة "تحديد التطبيق" ، واختر تطبيقك من القائمة. يتضمن هذا القسم أيضًا بعض الخيارات المتقدمة التي يمكنك استخدامها لإنشاء إشعارات مستهدفة ، استنادًا إلى عوامل مثل إصدار التطبيق ، الإعدادات المحلية للجهاز ، وآخر مرة يشارك فيها المستخدم مع تطبيقك. لن نستخدم أيًا من هذه الخيارات في إشعار الاختبار الخاص بنا ، ولكن إذا كنت تريد معرفة ما هو متاح ، فحدد "و ..." واستكشف القائمة المنسدلة التالية.

  • بمجرد الانتهاء من تعديل هذا القسم ، انقر فوق "التالي".
  • على افتراض أنك تريد إرسال هذا على الفور ، افتح القائمة المنسدلة "إرسال إلى المستخدمين المؤهلين" وحدد "الآن".
  • في أسفل يمين الشاشة ، انقر فوق "نشر".
  • تحقق من كل المعلومات في النافذة المنبثقة التالية ، وإذا كنت سعيدًا بالمتابعة ، فحدد "نشر".

بعد لحظات قليلة ، يجب أن تتلقى جميع أجهزة العميل التي استهدفتها هذا الإشعار في علبة النظام الخاصة بها.

في معظم الوقت ، سيتم تسليم إشعارات FCM على الفور ، ولكن في بعض الأحيان قد يستغرق الأمر بضع دقائق للوصول ، لذلك لا داعي للذعر إذا تأخر إشعارك.

تحديد بعض الأهداف: أحداث تحويل الإشعارات

عند إنشاء إشعار ، عادةً ما يكون لديك هدف في الاعتبار - سواء كان ذلك يدفع المستخدمين إلى العودة إلى التطبيق الخاص بك ، أو يقنعهم بالظهور على عملية شراء داخل التطبيق ، أو ببساطة فتح الإشعار.

يمكنك تعيين هدف لإشعارك ، باستخدام "مُنشئ الإشعارات" ، ثم تتبع أداء هذا الإشعار في لوحة معلومات تقارير FCM.

لتعيين هدف ، انقر لتوسيع قسم "أحداث التحويل" الخاص بملحن التنقل ، ثم افتح القائمة المنسدلة المصاحبة واختر من أحداث التحويل المتاحة.

هل كان إخطارك ناجحًا؟

بعد إرسال إشعار ، يمكنك تحليل أدائه في لوحة معلومات تقارير FCM ، والتي يجب أن يتم تحميلها تلقائيًا في كل مرة ترسل فيها رسالة جديدة ، أو يمكنك الوصول إلى لوحة المعلومات مباشرةً.

حتى إذا لم تحدد أي أهداف تحويل صريحة ، فلا يزال بإمكانك قياس ما إذا كان المستخدمون يتصرفون بناءً على الإشعارات الخاصة بك ، من خلال مقارنة عدد الإيصالات التي يتم تسليمها ، بعدد الأهداف المفتوحة.

يمكنك أيضًا تحديد أي منها في هذه القائمة ، للاطلاع على بيانات الإرسال وفتح وتحويل كرسوم بيانية. إذا قمت بتعيين أي أهداف تحويل ، فهذا هو المكان الذي ستجد فيه الإحصائيات المتعلقة بتلك الأهداف.

ماذا لو كان تطبيقي في المقدمة؟

تتصرف إعلامات FCM بشكل مختلف اعتمادًا على حالة تطبيق العميل.

بشكل افتراضي ، لن يعرض التطبيق الخاص بك أي FCM يستلمها أثناء وجوده في المقدمة ، لذلك عند إرسال ضمان ، لن يضمن المستخدمون فعلاً نرى ذلك

للعمل على التطبيق الذي يستقبله التطبيق أثناء تواجده في المقدمة، ستحتاج إلى تمديد FirebaseMessagingService ، وتجاوز طريقة onReceived ، ثم استرجاع محتوى باستخدام إما getNotification أو getData ، وهذا يتوقف على ما إذا كنت تعمل مع البيانات أو الإشعارات ، أو كليهما.

قم بإنشاء فئة Java جديدة باسم "MyFirebaseMessagingService" ثم قم بإضافة ما يلي:

الطبقة العامة MyFirebaseMessagingService يمتد FirebaseMessagingService {Override public void onReceived (Remote) {super.onReceived (remote)؛

ستحتاج أيضًا إلى إنشاء كائن إعلام. هذه هي فرصتك لتخصيص الإشعار الخاص بك ، على سبيل المثال اختيار الصوت الذي يجب تشغيله عندما يتلقى المستخدم هذا الإشعار ، أو تطبيق أيقونة إشعار مخصص. ستحتاج أيضًا إلى استرداد المحتوى من البيانات أو الإشعار ، على سبيل المثال:

NotificationCompat.Builder noticeBuilder = جديد NotificationCompat.Builder (هذا ، "channel_id") .setContentTitle (remote.getNotification (). getTitle ()) .setContentText (remote.getNotification (). getBody ()) .setPriority (NotificationCompat.PRIORITY) setStyle (جديد NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true)؛ NotificationManager noticeManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE)؛ alertManager.notify (0، noticeBuilder.build ())؛ }}

بمجرد إنشاء خدمتك ، لا تنسَ إضافتها إلى بيانك:

الآن ، في كل مرة يتلقى فيها تطبيقك FCM أثناء وجوده في المقدمة ، سيتم تسليمه إلى معالج onReceived () وسيقوم تطبيقك بعد ذلك بالإجراء الذي حددته ، مثل نشر الإشعار أو تحديث محتوى التطبيق الخاص بك.

المزيد من الإشعارات الجذابة: استهداف المستخدمين

حتى الآن ، كنا نرسل الإشعار نفسه إلى قاعدة مستخدمينا بأكملها ، لكن الإشعارات أصبحت أكثر جذبًا عندما تكون مستهدفة لمستخدمين محددين.

يمكنك استخدام "مؤلف الإشعارات" لإرسال إعلامات مختلفة إلى أجزاء مختلفة من قاعدة المستخدم الخاصة بك. توجّه إلى مؤلف الإشعارات وقم بإنشاء إشعارك كالمعتاد ، ولكن في قسم "الهدف" ، انقر فوق "و". يمنحك هذا إمكانية الوصول إلى قائمة منسدلة جديدة ، تحتوي على الخيارات التالية:

  • الإصدار. يتيح لك ذلك استهداف أو استبعاد الأجهزة التي تعمل على إصدارات محددة من التطبيق الخاص بك. على سبيل المثال ، قد ترسل إخطارات إلى الأشخاص الذين يقومون بتشغيل الإصدار المجاني ، وتشجيعهم على الترقية إلى الإصدار المميز للتطبيق الخاص بك.
  • لغة. يمكنك استخدام هذا الإعداد لاستهداف أو استبعاد اللغات واللغات المختلفة التي يدعمها التطبيق الخاص بك ، مثل إنشاء إعلامات مخصصة لمناطق أو لغات زمنية مختلفة.
  • جمهور المستخدم. يتيح لك ذلك استهداف أو استبعاد أقسام مختلفة من جمهورك. على سبيل المثال ، يمكنك استخدام هذا الإعداد لإغراء الأشخاص الذين لديهم تاريخ في إجراء عمليات الشراء داخل التطبيق ، من خلال تقديم خصم أو لفت انتباههم إلى جميع المنتجات الجديدة والمدهشة داخل التطبيق التي أصدرتها للتو.
  • خاصية المستخدم. إذا كنت تقوم بإعداد Firebase Analytics ، فستتمكن من الوصول إلى مجموعة من المعلومات حول جمهورك ، عبر خصائص المستخدم. يمكنك استخدام هذه الخصائص مع FCM ، لإرسال إشعارات مستهدفة إلى أقسام محددة للغاية من قاعدة المستخدمين الخاصة بك ، مثل الأشخاص من الفئة العمرية 25-34 الذين يهتمون بالرياضة.
  • تنبؤ. إذا قمت بإعداد تنبؤات Firebase ، فيمكنك استهداف المستخدمين استنادًا إلى مدى احتمال مشاركتهم في سلوك معين خلال الأيام السبعة القادمة. على سبيل المثال ، إذا حذرت التوقعات من أن شخصًا ما من المحتمل أن ينفصل عن لعبتك المحمولة ، فيمكنك استخدام FCM لدعوته للمشاركة في بحث جديد أو لإرسال بعض العملات داخل اللعبة.
  • مشاركة التطبيق مشاركة. إذا لم يقم أحد المستخدمين بتشغيل تطبيقك منذ فترة ، فيمكنك استخدام هذا الإعداد لإرسال إعلامات قليلة إليه ، فقط لتذكيرهم بجميع المحتويات الرائعة التي يقدمها تطبيقك.
  • فتح أولا. يتيح لك ذلك إرسال إشعارات بناءً على أول مرة يقوم فيها المستخدم بفتح التطبيق الخاص بك ، على سبيل المثال ، قد تساعد المستخدمين الجدد على السرعة من خلال إرسال إشعارات لهم تحتوي على نصائح ونصائح مفيدة.

استهداف جهاز واحد مع رموز التسجيل

لقد رأينا بالفعل كيفية إرسال إشعارات مستهدفة استنادًا إلى عوامل مثل عمر المستخدم واهتماماته وآخر مرة شارك فيها تطبيقك ، ولكن يمكنك تعادل أكثر تحديدا. في هذا القسم الأخير ، سأوضح لك كيفية إرسال إشعار FCM إلى غير مرتبطة جهاز.

عندما يقوم المستخدم بتشغيل التطبيق الخاص بك لأول مرة ، يقوم FCM SDK بإنشاء رمز مميز لتسجيل مثيل تطبيق العميل. يمكنك استخدام FirebaseInstanceId.getInstance (). getInstanceId () لالتقاط رمز التسجيل هذا ، ثم إرسال إشعار إلى هذا الرمز المميز المحدد.

لاحظ أنه في مشروع حقيقي ، يمكنك عادةً التقاط رمز مميز عن طريق إرساله إلى خادم التطبيق الخاص بك وتخزينه باستخدام الطريقة المفضلة لديك ، ولكن للمساعدة في إبقاء الأمور واضحة ، سأقوم بكل بساطة بطباعة هذا الرمز المميز على Logcat الخاص بـ Android Studio.

إليكم MainActivity المكتملة:

استيراد android.support.v7.app.AppCompatActivity؛ استيراد android.os.Bundle ؛ استيراد android.support.annotation.NonNull؛ استيراد android.util.Log؛ import com.google.android.gms.tasks.OnCompleteListener؛ import com.google.android.gms.tasks.Task؛ استيراد com.google.firebase.iid.FirebaseInstanceId؛ import com.google.firebase.iid.InstanceIdResult؛ توسيع MainActivity من الفئة العامة AppCompatActivity {private static final String TAG = "MainActivity"؛ Override محمية void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState)؛ setContentView (R.layout.activity_main)؛ FirebaseInstanceId.getInstance (). getInstanceId () .addOnCompleteListener (جديد OnCompleteListener() {@ Oververide public void onComplete (NonNull Task task) {if (! task.isSuccessful ()) {// To // // return؛ } // الحصول على رمز معرف مثيل // String token = task.getResult (). getToken ()؛ String msg = getString (R.string.fcm_token، token)؛ Log.d (TAG، msg)؛ }}) ؛ }}

افتح ملف strings.xml الخاص بك وقم بإنشاء مورد سلسلة "fcm_token" الذي نشير إليه في نشاطنا الرئيسي:

رمز FCM:٪ s

يمكنك الآن استرداد الرمز المميز الفريد لجهازك:

  • قم بتثبيت مشروعك على جهاز Android المتصل ، أو AVD.
  • افتح Android Studio’s Logcat ، عن طريق تحديد علامة التبويب "Logcat" (حيث يتم وضع المؤشر في لقطة الشاشة التالية).

  • ستتم طباعة الرمز المميز لجهازك على قسم "Debug" في Logcat ، لذا افتح القائمة المنسدلة وحدد "Debug".

اعتمادًا على كمية المعلومات في Logcat ، قد يكون من الصعب تحديد الخط الذي تبحث عنه. إذا كنت تكافح ، فابحث عن كلمة "الرمز المميز" ، أو حاول الإغلاق ثم أعد تشغيل التطبيق.

بمجرد استرداد الرمز المميز ، يمكنك استخدامه لإرسال إشعار دفع إلى هذا الجهاز المحدد:

  • توجه إلى Firebase Console واختر مشروعك من القائمة المنسدلة ، إذا لم تكن قد قمت بذلك بالفعل.
  • اختر "المراسلة في السحاب" من القائمة اليمنى.
  • انقر على زر "إخطار جديد".
  • أدخل العنوان والنص ، كالمعتاد ، ولكن انقر فوق "اختبار على الجهاز".

  • انسخ / الصق الرمز المميز في حقل "إضافة مثيل ..." ، ثم انقر فوق الرمز "+" الأزرق الصغير الذي يظهر.
  • حدد مربع الاختيار الخاص بالرمز المميز.

  • انقر فوق "اختبار".

سيظهر هذا الإشعار الآن على جهاز العميل المستهدف فقط.

تغليف

في هذا المقال ، أوضحت لك كيفية إرسال إشعارات Android ، باستخدام Firebase Cloud Messaging ، وكيفية إنشاء إشعارات تستهدف أقسامًا مختلفة من قاعدة المستخدمين الخاصة بك.

هل ستستخدم FCM في مشاريع Android الخاصة بك؟ اسمحوا لنا أن نعرف في التعليقات أدناه!

في وقت سابق من هذا الشهر ، وصلنا إلى أول نظرة على سلسلة موتورولا موتو G7 الجديدة. بعد الإطلاق العالمي ، أصبحت Moto G7 Power التي تركز على الطاقة الآن في طريقها إلى الهند....

التحديث ، 15 يوليو (تموز) 2019 (02:39 مساءً بتوقيت شرق الولايات المتحدة): نعتذر عن الخطأ ، ولكن يبدو أن شروط الصفقة الموضحة أدناه قد تم توزيعها بشكل غير صحيح . المعلومات الأصلية حول 49 $ من موتورولا م...

شعبية على البوابة