Skip to main content

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

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

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

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

setNotificationListener()

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

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

  • کلاسی بسازید که از Application ارث ببرد.
  • آن‌را بصورت زیر به مانیفست اضافه‌کنید:
AndroidManifest.xml
<!-- MyApplication is your class -->
<Manifest ...>
<application ...
android:name=".MyApplication">
...
...
class MyApplication extends android.app.Application {

@Override
public void onCreate() {
super.onCreate()
// TODO define listener here
}
}

در متد 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آیکن دکمه