title: Firebase Cloud Messaging Integration for Cordova Hybrid Apps
localeTitle: Firebase Cloud Messaging Integration for Cordova Hybrid Apps
---
## Firebase Cloud Messaging Integration for Cordova Hybrid Apps
هذه خطوة أساسية إلى الأمام مباشرة من خلال كيفية تنفيذ إشعار الدفع في Android وكذلك iOS باستخدام [المكوّن الإضافي cordova لـ fcm](https://github.com/fechanique/cordova-plugin-fcm) و Google Firebase FCM من البداية. سأستخدم Ubuntu 16.04 LTS لهذا ، ولكن نظام التشغيل المستخدم في التطوير لا ينبغي أن يكون له أهمية كبيرة.
ملاحظة: يرجع ذلك إلى أننا لم نضف ملف google-services.json الذي يجب إنشاؤه في الخطوات التالية.
بعد ذلك افتح [وحدة التحكم](https://console.firebase.google.com/) في [google firebase وأضف](https://console.firebase.google.com/) مشروعًا (يعني أساسًا إنشاء مشروع جديد)
بمجرد إنشاء المشروع ، انقر على قسم الإشعارات في اللوحة الجانبية اليسرى.
انقر الآن على رمز **Android** لإضافة دعم **نظام Android** إلى مشروعنا.
في النموذج المنبثق التالي ، املأ التفاصيل كما يلي: **اسم حزمة Android: اسم** الحزمة أو معرفها هو المعرف الفريد لأحد التطبيقات في متجر Play. لاحظ أنها قيمة مهمة جدًا لا يمكن تغييرها لأحد التطبيقات بمجرد تحميلها إلى متجر Play. سيكون في بناء جملة اسم النطاق العكسي: على سبيل المثال ، سيكون لدى hello.pushSample.com معرف التطبيق: com.pushSample.hello. أيضا في ملف **config.xml** في مشروع كوردوفا الخاص بك تعيين معرف التطبيق نفسه. لمشروع العينة لدينا سيكون في: pushSample / pushSample / config.xml على سبيل المثال بالنسبة لي محتويات هذا الملف هي:
هنا هوية السمة هو **معرف** حزمة والتي سوف يكون افتراضيا **io.cordova.hellocordova** تغييره إلى معرف التطبيق الذي قمت بتحديده في وحدة تحكم firebase. سوف أستخدم com.pushSample.hello
الحقل التالي المراد ملؤه في النافذة المنبثقة لوحدة التحكم في firebase هو:
**لقب التطبيق (اختياري):** يمكن أن يكون هذا هو نفس اسم التطبيق الذي يتم عرضه في قائمة التطبيق ، ويمكن أيضًا تغيير هذا في config.xml ، بشكل افتراضي سيكون HelloCordova ، سأقوم بتحديثه إلى **PushSample**
يقوم الرمز أولاً باستدعاء الدالة **getToken** للحصول على رمز FCM المميز من firebase ، ثم في معاودة الاتصال يقوم بتسجيل رد **اتصال** آخر على **Notification** لمعالجة ما يحدث عند تلقي إعلام الدفع.
**تحتوي** الدالة **onNotification** على قيمة بيانات تحتوي على بيانات الإشعار. data.wasTapped يشير إلى ما إذا كان يتم إرسال الإشعار عندما يكون التطبيق في المقدمة أو الخلفية ، بحيث يمكننا تحديد منطق منفصل لكل حالة. الآن لإطلاق نموذج إخطار الدفع ، انقر على قسم الإشعارات في اللوحة الجانبية اليسرى ، يجب أن يعرض عليك الآن ملحن إخطار Firebase ، ويعرض قائمة بالإعلامات السابقة المرسلة.
في حال لم ترسل أي إشعارات دفع بعد. سترى زر **إرسال إشعارك الأول** .
لاحظ أيضًا أنه عند إرسال إشعارات الدفع باستخدام واجهات برمجة تطبيقات REST من خادم تطبيقاتك بدلاً من ملحن إخطار Firebase ، يجب عليك استخدام البنية التالية:
//sound: optional field if you want sound with the notification
//click_action: must be present with the specified value for Android
//icon: white icon resource name for Android >5.0
//data: put any "param":"value" and retreive them in the JavaScript notification callback
//to: device token or /topic/topicExample
//priority: must be set to "high" for delivering notifications on closed iOS apps
//restricted_package_name: optional field if you want to send only to a restricted app package (ie: com.myapp.test)
`
**ملاحظة: " _إجراء_ النقر _":_ يُعد** حقل **_"FCM_ PLUGIN\_ACTIVITY"** مهمًا جدًا لأن عدم الإشارة إليه لن يؤدي إلى تنفيذ معاودة onNotification في وضع المقدمة.

### تطبيق iOS
بالنسبة إلى تطبيق iOS ، سنحتاج إلى إنشاء الأشياء التالية في [صفحة مطور Apple.](https://developer.apple.com/) أنا أستخدم XCODE 8.3
معرف التطبيق: com.example.app مفتاح مصادقة إخطار الدفع من Apple (مفتاح مصادقة APN) تم توفير ملف تخصيص التزويد مع إعلامات الدفع. شهادات APNs
كما تعد [مستندات Firebase لإشعارات الدفع](https://firebase.google.com/docs/cloud-messaging/ios/client) نقطة بداية ممتازة في العمق.
ملاحظة: لا يمكنك تشغيل إشعارات الدفع في المحاكي ، ستحتاج إلى جهاز فعلي.
هيا نبدأ.
أولاً ، سجّل الدخول إلى وحدة تحكم مطور البرامج ، وحدد مشروعًا حاليًا أو أنشئ مشروعًا جديدًا ، وسنستخدم نفس مشروع pushSample. في نظرة عامة على المشروع ، أضف تطبيقًا آخر باستخدام نظام التشغيل iOS كنظام أساسي. في النافذة المنبثقة التي تظهر ، أدخل التفاصيل التالية:
* الخطوة 1 **معرِّف الحزمة:** هذا هو المعرِّف الفريد الذي يتم استخدامه لتحديد تطبيق في متجر apple ، يجب أن يكون هذا هو نفس معرف الحزمة الذي ستحدده في ملف config.xml لملف Cordova أو قسم Bundle Id في xCode. سنستخدم **com.pushSample.hello****اسم التطبيق** : هذا هو اسم معرف معرف الخيار ، سنستخدم نفس الاسم الذي سيتم عرضه في قائمة تطبيق iOS وهو PushSample. **رقم تعريف متجر التطبيقات** : اترك هذا فارغًا.
بمجرد النقر على تطبيق السجل ، تظهر خطوة تطبيق iOS 2.
* الخطوة 2 انقر هنا على زر تنزيل **Googleservice-info.plist** لتنزيل الملف الذي **سنستخدمه** في الخطوات التالية.
**الخطوة 3 والخطوة 4** يمكننا التخطي حيث سيتم التعامل مع هذه داخليا بواسطة البرنامج المساعد Cordova FCM.
بمجرد إضافة تطبيق iOS إلى مشروعك ، انقر فوق رمز الترس إلى جانب الملصقة العامة في اللوحة الجانبية اليسرى وحدد إعدادات المشروع. (راجع الصورة أدناه.). يجب أن يتم فتح علامة التبويب "عام" الخاصة بإعدادات المشروع بشكل افتراضي.
انقر بعد ذلك على تطبيق iOS الخاص بك في تطبيقاتك -> تطبيقات iOS. في تفاصيل تطبيق iOS ، قم بتحديث **بادئة معرف التطبيق** ، وهي القيمة التي ستحصل عليها في مركز أعضاء Apple ضمن علامة التبويب العضوية.
انتقل الآن إلى علامة التبويب **Cloud Messaging** -> قسم تهيئة تطبيق iOS.
هنا ، كما ناقشنا سابقًا ، قم بتحميل مفتاح APNs Auth الذي أنشأته في مركز عضو Apple. بعد ذلك نقوم بإعداد تطبيق جانب العميل. إنشاء مجلد جديد sampleApp في مجلد التطوير الخاص بك ، بالنسبة لي هو
في هذه المرحلة ، سيحتوي نموذج التعليمة البرمجية على ملف app.js ، والذي يمكنك تعديله وإضافة وظائف getToken و onNotification مثل android. شفرة javascript هي نفسها لكلا المنصتين.