اطلاع از رویداد‌های نوتیفیکیشن

Android

تعریف رویدادهای نوتیفیکیشن

در صورتی که پیامی از پوشه به کاربر ارسال شود (نوتیفیکیشن و یا جیسون)، می‌توان از آنها باخبر شد. برای اینکار می‌توانید روی رویدادهای مربوط متدهای listener تعریف کنید و هنگام رخ‌دادن یکی از رویدادهای زیر کدهای خود را فراخوانی کنید.

  • دریافت نوتیفیکیشن
  • دریافت JSON (Custom content)
  • کاربر بر روی اعلان کلیک کند
  • کاربر اعلان را رد کند
  • کاربر بر روی دکمه‌ای از اعلان کلیک کند

نحوه کارکردن رویدادهای اعلان در ری‌اکت‌نیتیو

برای پیاده سازی و استفاده از رویدادهای اعلان در ری‌اکت‌نیتیو باید این نکته را مدنظر قرار دهید که این کار در حالتی که اپلیکیشن بازباشد (foreground) و در حالتی که اپلیکیشن بسته باشد (background) متفاوت می‌باشد.

در حالتی که اپلیکیشن باز است شما می‌توانید مستقیما در کامپوننت های ری‌اکت اپلیکیشن خود متدهای event handler را ست کرده و callback دلخواه‌تان را به این handler بدهید و زمانی که یکی از رویدادهای اعلان رخ داد callback های شما صدا زده خواهند شد. فقط دقت کنید که بهتره این event handler ها را در بالاترین سطح از شاخه کامپوننت‌های تان قرار دهید.

و برای حالتی که اپلیکیشن در بک‌گراند می‌باشد باید یک فایل جاوااسکریپ که در ادامه راهنما توضیج داده شده بسازید و event handler های مربوطه را در این فایل قرار دهید و نکته ای که اینجا قابل تامل می‌باشد این است که در حالت بک‌گراند شما در واقع در یک فایل مجزا از کامپوننت های ری‌اکت‌تان این رویداد ها را دریافت می‌کنید.

اضافه‌کردن کد لازم


برای دو حالت باز و بسته بودن برنامه، دو حالت مختلف برای افزودن رویداد وجود دارد که برای استفاده از هردو باید آن‌ها را به پروژه اضافه نمایید.

در این حالت در یکی از کامپوننت های اپلیکیشن‌تان (ترجیحا در بالای شاخه کامپوننت‌ها) کد زیر را در componentDidMount یا با استفاده از هوک در useEffect مطابق کد زیر قرار دهید

دقت کنید که در صورت استفاده از هوک useEffect حتما از [] در هوک استفاده کنید که فقط یک‌با کالبک‌های اعلان اضافه شوند

import React, {useEffect} from "react";
import Pushe from "pushe-react-native";
const App = () => {
useEffect(() => {
Pushe.addEventListener(Pushe.EVENTS.RECEIVED, (notification) => {
// Notification was received
});
Pushe.addEventListener(Pushe.EVENTS.CLICKED, (notification) => {
// Notification was clicked
});
Pushe.addEventListener(Pushe.EVENTS.DISMISSED, (notification) => {
// Notification was dismissed
});
Pushe.addEventListener(Pushe.EVENTS.BUTTON_CLICKED, (notification) => {
// Notification button was clicked
});
Pushe.addEventListener(Pushe.EVENTS.CUSTOM_CONTENT_RECEIVED, (notification) => {
// Custom content was received
});
}, []); // Do not forget to use []
return (
// The jsx that would renders
);
}

حالت ‌های مختلف رویدادهای نوتیفیکیشن

حالت‌های مختلف رویداد در جدول زیر شرح‌ داده‌ شده‌است:

پارامتر ورودیاستفاده
Pushe.EVENTS.RECEIVEDزمانی که نوتیفیکیشن دریافت شد این متد اجرا می‌شود.
Pushe.EVENTS.CLICKEDزمانی که کاربر روی نوتیفیکیشن کلیک کند، این متد اجرا می‌شود
Pushe.EVENTS.DISMISSEDزمان که کاربر نوتیفیکیشن را رد کند، این متد اجرا می‌شود
Pushe.EVENTS.BUTTON_CLICKEDزمانی که کاربر روی یک دکمه‌ی نوتیفیکیشن کلیک‌کند، این متد اجرا می‌شود
Pushe.EVENTS.CUSTOM_CONTENT_RECEIVEDزمانی که نوتیفیکیشن همراه با جیسون دلخواه و یا جیسون دلخواه‌، دریافت شود این متد اجرا می‌شود

کلید ها و مقادیری که توسط رویدادها دریافت می‌شوند

Notification

این رشته اطلاعات نوتیفکیشن را در غالب یک جیسون دارد. از قبیل تیتر، متن.

فیلدتوضیحات
titleتیتر نوتیفیکیشن
contentمحتوای نوتیفیکیشن
bigTitleتیتر بزرگ نوتیفیکیشن
bigContentمحتوای بزرگ نوتیفیکیشن
summaryمتن خلاصه‌ی نوتیفکیشن
imageUrlلینک عکس نوتیفیکیشن
iconUrlلینک آیکون نوتیفیکیشن
customContentجیسون دلخواه نوتیفیکیشن
buttonsلیست دکمه‌هایی که نوتیفیکیشن دارد

Button

این رشته اطلاعات دکمه‌ي کلیک‌شده را در غالب جیسون‌دارد.

فیلدتوضیحات
idشناسه‌ای برای تشخیص دکمه
textمتن دکمه

customContent

این رشته جیسونی است که توسعه‌دهنده هنگام ساخت و ارسال نوتیفیکیشن به آن ضمیمه می‌کند.