رویداد دریافت، کلیک و...

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

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

اجرای کد هنگام رخ‌دادن رویداد

setNotificationListener()

پارامتر ورودیاستفاده
notificationListenerیک اینترفیس که متدهای رویدادها را نگه‌داری و در زمان رخ‌داد فراخوانی می‌کند
دریافت رویداد در همه حال

برای اینکه بتوانید رویدادها را در هر زمانی دریافت کنید بهتر است پیاده‌سازی کدهای رویداد را در کلاس اپلیکیشن انجام دهید. برای اینکار:

  • کلاسی بسازید که از Application ارث ببرد.

  • آن‌را بصورت زیر به مانیفست اضافه‌کنید:

    AndroidManifest.xml
    <!-- MyApplication is your class -->
    <Manifest ...>
    <application ...
    android:name=".MyApplication">
    ...
    ...

    در متد onCreate کلاس، کدهای لازم (زیر) اضافه‌کنید

کدهای دریافت رویداد را می‌توانید به صورت زیر استفاده کنید:

PusheNotification notificationModule = Pushe.getPusheService(PusheNotification.class);
notificationModule.setNotificationListener(new PusheNotificationListener() {
@Override
public void onNotification(@NonNull NotificationData notification) {
//Notification Received
@Override
public void onCustomContentNotification(@NonNull Map<String, Object> customContent) {
// Notification custom content (Json) received
@Override
public void onNotificationClick(@NonNull NotificationData notification) {
// Notification clicked
@Override
public void onNotificationDismiss(@NonNull NotificationData notification) {
// Notification dismissed
@Override
public void onNotificationButtonClick(@NonNull NotificationButtonData button,
@NonNull NotificationData notification) {
// Notification button clicked
}
});

به محض دریافت نوتیفیکیشن بایستی کد داخل onNotification اجرا شود و برای رویدادهای دیگر نیز به همین ترتیب، وقتی رخ بدهند کدهای مربوط به آنها اجرا می‌شود.

اینترفیس NotificationListener

اینترفیس callback برای این‌کار به صورت زیر است:

public interface PusheNotificationListener {
void onNotification(@NonNull NotificationData notification);
void onCustomContentNotification(@NonNull Map<String, Object> customContent);
void onNotificationClick(@NonNull NotificationData notification);
void onNotificationDismiss(@NonNull NotificationData notification);
void onNotificationButtonClick(@NonNull NotificationButtonData button,
@NonNull NotificationData notification);
}

و کلاس‌های NotificationData و NotificationButtonData دارای فیلدهای زیر هستند:

NotificationData.java:

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

جز title و content بقیه‌ی فیلدها می‌توانند null باشند.

NotificationButtonData.java

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