كيفية دمج دفع الإخطارات في PWA الخاص بك

نشرت: 2021-04-28

جدول المحتويات

في برنامجنا التعليمي اليوم ، سنقوم بدمج إشعارات الدفع في PWA باستخدام Firebase ، أو لنكون أكثر تحديدًا ، باستخدام ميزة المراسلة السحابية بداخلها والتي تتيح إرسال الرسائل باستخدام طلبات HTTPS.

تطبيقات الويب التقدمية ودفع الإخطارات

نظرًا لأن تطبيق الويب التقدمي هو حركة دائمة التغير ، فليس من المستغرب أن نرى أن التكنولوجيا نفسها أصبحت على قدم المساواة (من حيث الوظيفة) مع نظيرتها في التطبيق الأصلي.

 يوصى بقراءة: PWA مقابل Native: أيهما يناسبك بشكل أفضل؟

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

جون كرافسيك ، Chrome Dev Summit 2019
مشغلات دفع الإشعارات - Chrome Dev Summit 2019
الجديد في Chrome 80 ، تعمل Notification Triggers على تمكين الإشعارات حتى في وضع الطائرة

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

 يوصى بالقراءة: 9 ميزات لا غنى عنها لتطبيق الويب التقدمي (PWA) للتجارة الإلكترونية

كيفية دمج دفع الإخطارات في PWA الخاص بك

في برنامجنا التعليمي اليوم ، سنقوم بدمج إشعارات الدفع في PWA باستخدام Firebase ، وتحديداً ميزة المراسلة السحابية بداخلها والتي تتيح إرسال الرسائل باستخدام طلبات HTTPS.

المتطلبات الأساسية

  • حساب Firebase (بما أنك ستنشئ مشروعًا داخل Firebase)
  • تطبيق ويب تقدمي. للحصول على عرض توضيحي مبسط ، سنستخدم تطبيق create-response-app وهو تطبيق PWA أساسي يمكن إنشاؤه باستخدام أمر
إشعارات دفع PWA: أنشئ مشروع Firebase
أنشئ مشروعًا باستخدام Firebase

الخطوة 1 : قم بإنشاء PWA أساسي

نظرًا لأننا سننشئ PWA أساسيًا باستخدام تطبيق create-react-app ، فلنقم بتنزيل NodeJS أولاً. بعد الانتهاء من تثبيت NodeJS ، افتح موجه أوامر NodeJS وقم بتشغيل الأوامر التالية.

لإنشاء تطبيق React بسيط في دليلك المحدد:

 npx create-reaction-app your-pwa-directory

قم بتغيير دليل العمل الحالي إلى تطبيق React الذي تم إنشاؤه حديثًا:

 cd your-pwa-directory

أضف مكتبة Firebase JavaScript لعرضها:

 npm تثبيت firebase - حفظ 
تثبيت Firebase

الخطوة 2: إنشاء push-notification.js

الخطوة التالية هي إنشاء الوحدة التي ستكون مسؤولة عن جميع عمليات الإشعارات الخاصة بك. في <your-pwa-directory>\src ، أنشئ ملفًا باسم push- push-notification.js .js.

أولاً ، لنقم بإنشاء وظيفة تقوم بتهيئة Firebase وتمرير مفاتيح مشروعك. يمكنك العثور على مفاتيح مشروعك بالانتقال إلى Firebase> نظرة عامة على المشروع ← إعدادات المشروع والنقر على هذا الرمز:

Firebase SDK لإشعار دفع PWA

سيوجهك هذا إلى صفحة أخرى تحتوي على Firebase SDK لـ PWA:

Firebase SDK

الآن بعد أن أصبح لدينا مفاتيح مشروعنا ، دعنا نضيف الكود التالي إلى push-notification.js . js.

 استيراد Firebase من "firebase" ؛
تصدير const initializeFirebase = () => {
  firebase.initializeApp ({
    مفتاح apiKey: "XXXXXXXXXXXXX" ،
    نطاق المصادقة: "XXXXXXXXXXXXX" ،
    قاعدة بيانات عنوان URL: "XXXXXXXXXXXXX" ،
    معرّف المشروع: "XXXXXXXXXXXXX" ،
    التخزين: "XXXXXXXXXXXXX" ،
    messagingSenderId: "XXXXXXXXXXXXX"،
    معرف التطبيق: "XXXXXXXXXXXXX"
  }) ؛
}

باستخدام هذا ، تكون قد أنشأت الوظيفة المسؤولة عن جميع عمليات معالجة الإشعارات ، وستحتاج الآن إلى استيرادها واستدعاءها. قم بتحرير index.js الخاص بك كما يلي:

 استيراد رد فعل من "رد فعل" ؛
استيراد ReactDOM من "رد فعل دوم" ؛
استيراد "./index.css" ؛
استيراد التطبيق من "./App" ؛
استيراد * كـ serviceWorkerRegistration من "./serviceWorkerRegistration" ؛
استيراد reportWebVitals من "./reportWebVitals" ؛
استيراد Firebase من "firebase" ؛
استيراد {initializeFirebase} من './push-notification' ؛
ReactDOM.render (<App />، document.getElementById ('root')) ؛
initializeFirebase () ،

الخطوة 3: إنشاء عامل خدمة

Service Workers (عمال الخدمة) هو اسم التقنية الكامنة وراء تطبيق الويب التقدمي ، والذي يدعم قدرته في وضع عدم الاتصال ، ودفع الإخطارات والتخزين المؤقت للموارد.

SimiCart ، كل ما تحتاج لمعرفته حول تطبيقات الويب التقدمية

مطلوب عامل خدمة لتلقي حدث onMessage وبالتالي ، السماح بإرسال الإخطارات إلى جهاز المستخدم. بشكل افتراضي ، يبحث Firebase تلقائيًا عن ملف يسمى firebase-messaging-sw.js .

دعنا نضيف firebase-messaging-sw.js إلى الدليل حيث يتم تقديم ملفاتك. نظرًا لأن مشروعنا عبارة عن مشروع create-react-app ، فسيتم firebase-messaging-sw.js العام:

 importScripts ('https://www.gstatic.com/firebasejs/8.4.1/firebase-app.js') ؛
importScripts ('https://www.gstatic.com/firebasejs/8.4.1/firebase-messaging.js') ؛
firebase.initializeApp ({
    مفتاح apiKey: "XXXXXXXXXXXXX" ،
    نطاق المصادقة: "XXXXXXXXXXXXX" ،
    قاعدة بيانات عنوان URL: "XXXXXXXXXXXXX" ،
    معرّف المشروع: "XXXXXXXXXXXXX" ،
    التخزين: "XXXXXXXXXXXXX" ،
    messagingSenderId: "XXXXXXXXXXXXX"،
    معرف التطبيق: "XXXXXXXXXXXXX"
}) ؛
رسائل const = firebase.messaging () ؛

إذا لم تكن قد سمعت عن PWA Service Worker حتى الآن ، فلدينا مقال حصري لتتعلم كل شيء عن هذه التكنولوجيا المدهشة.

الخطوة 4: اطلب أذونات المستخدم لإرسال الإشعارات

إنه عصر الخصوصية ، ولا تريد إزعاج المستخدمين بإرسال إعلامات غير مرغوب فيها وغير مصرح بها!

لطلب إذن المستخدم الخاص بك ، ما عليك سوى إضافة هذا إلى push-notification.js الخاص بك:

 استيراد Firebase من "firebase" ؛
 
تصدير const initializeFirebase = () => {
  firebase.initializeApp ({
    مفتاح apiKey: "XXXXXXXXXXXXX" ،
    نطاق المصادقة: "XXXXXXXXXXXXX" ،
    قاعدة بيانات عنوان URL: "XXXXXXXXXXXXX" ،
    معرّف المشروع: "XXXXXXXXXXXXX" ،
    التخزين: "XXXXXXXXXXXXX" ،
    messagingSenderId: "XXXXXXXXXXXXX"،
    معرف التطبيق: "XXXXXXXXXXXXX"
  }) ؛
}
 
تصدير const askForPermissionToReceiveNotifications = async () => {
  محاولة {
    رسائل const = firebase.messaging () ؛
    انتظار messaging.requestPermission () ؛
    رمز const = انتظار messaging.getToken () ؛
    console.log ('الرمز المميز الخاص بك هو:' ، الرمز المميز) ؛
    
    رمز العودة
  } catch (خطأ) {
    وحدة التحكم (خطأ) ؛
  }
}

ونظرًا لأن هذه الوظيفة ستحتاج إلى الاستدعاء من مكان ما ، فسنضيفها بنقرة زر واحدة. قم بتحرير ملف app.js في الدليل / src / مثل:

 استيراد الشعار من "./logo.svg" ؛
استيراد "./App.css" ؛
استيراد {askForPermissionToReceiveNotifications} من "./push-notification" ؛

وظيفة التطبيق () {
  إرجاع (
    <div className = "التطبيق">
      <header className = "App-header">
        <img src = {logo} className = "App-logo" alt = "logo" />
        <p>
          قم بتحرير <code> src / App.js </code> وحفظها لإعادة التحميل.
        </p>
        <أ
          className = "رابط التطبيق"
          href = "https://reactjs.org"
          الهدف = "_ فارغ"
          rel = "noopener noreferrer"
        >
          تعلم React
        </a>
		 <button onClick = {askForPermissionToReceiveNotifications}>
          انقر لتلقي الإخطارات
        </button>
      </header>
    </div>
  ) ؛
}

تصدير التطبيق الافتراضي ؛

الآن دعنا نبدأ مشروعنا وسترى زر انقر لتلقي الإشعارات مثل هذا:

انقر لتلقي زر الإخطارات

انقر فوق الزر وسترى نافذة منبثقة تطلب إذنك:

موجه إعلام الدفع

انقر فوق السماح وتحقق من وحدة تحكم المستعرض الخاص بك. من المفترض أن ترى رسالة تُعلمك بالرمز المميز الخاص بك:

ولدت رمز الاستخدام

الآن احفظ هذا الرمز في مكان آخر لأنك ستحتاج إليه في الخطوة التالية.

الخطوة 5: إرسال إشعارات فورية مع ساعي البريد

في الخطوات التالية ، سنستخدم ساعي البريد لإرسال إشعارات باستخدام خدمة المراسلة السحابية من Firebase.

في Postman ، أنشئ طلب POST بالمعلومات التالية:

  • عنوان URL للطلب : https://fcm.googleapis.com/fcm/send
  • الرؤوس : في رؤوس طلب POST ، ستحتاج إلى المفاتيح التالية:

التفويض: مفتاح = SERVER_KEY

نوع المحتوى : application / json

تم تكوين الإذن ونوع المحتوى بشكل صحيح

ملاحظات : يمكن العثور على SERVER_KEY ضمن علامة التبويب Cloud Messaging في إعدادات Firebase

  • Body : املأ نص طلب POST بالرمز التالي:
 {
    "تنبيه": {
        "العنوان": "SimiCart"،
        "body": "اختبار دفع الإخطار" ،
        "click_action": "http: // localhost: 3000 /" ،
        "رمز": "https://i.imgur.com/5zO5cce.png"
    }
    "إلى": "USER_TOKEN"
}

استبدل USER_TOKEN الذي حصلت عليه (بالنقر فوق الزر انقر لتلقي الإشعارات ) في الخطوة 4. لا تنس اختيار Body type as raw و JSON .

هيئة ساعي البريد

انقر الآن على إرسال وسترى إشعارًا يظهر في الزاوية اليمنى السفلية:

اختبار نتيجة الإخطار

ملاحظات : تظهر هذه الإشعارات فقط عندما يكون التطبيق في الخلفية أو مصغرًا.

تهانينا! يمكن لـ PWA الآن إرسال إشعارات!

استنتاج

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

استكشف simicart PWA