رویداد دریافت، کلیک و...
در صورتی که پیامی از پوشه به کاربر ارسال شود (به صورت نوتیفیکیشن و یا جیسون)، میتوان از آنها باخبر شد. برای اینکار میتوانید کالبکی تعریف کنید و هنگام رخدادن یکی از رویدادهای زیر کدهای خود را فراخوانی کنید.
- دریافت نوتیفیکیشن
- دریافت JSON (Custom content)
- کاربر بر روی اعلان کلیک کند
- کاربر اعلان را رد (Dismiss) کند
- کاربر بر روی دکمهای از اعلان کلیک کند
اجرای کد هنگام رخدادن رویداد
setNotificationListener()
| پارامتر ورودی | استفاده |
|---|---|
| notificationListener | یک اینترفیس که متدهای رویدادها را نگهداری و در زمان رخداد فراخوانی میکند |
[نکته] : برای اینکه بتوانید رویدادها را در هر زمانی دریافت کنید بهتر است پیادهسازی کدهای رویداد را در کلاس اپلیکیشن انجام دهید. برای اینکار:
- کلاسی بسازید که از
Applicationارث ببرد. - آنرا بصورت زیر به مانیفست اضافهکنید:
<!-- 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 | آیکن دکمه |