دریافت و نمایش پوش نوتیفیکیشن‌ها به صورت دلخواه

خرداد ۱۷, ۱۳۹۵

یکی از سوالاتی که کاربران سرویس پوش نوتیفیکیشن MBaaS مطرح می‌کنند این است که آیا امکان دریافت و نمایش پوش نوتیفیکیشن‌ها به صورت سفارشی و دلخواه وجود دارد یا خیر؟ جواب این سوال مثبت است و در ادامه این مطلب نحوه استفاده از این قابلیت شرح داده خواهد شد.

جهت دریافت پوش نوتیفیکیشن به صورت مستقیم تنها کافیست اینترفیس GcmMessageListener و متد onMessageReceived آن را مشابه نمونه کد زیر پیاده‌سازی کنید:

public class CustomMessageReceivedListener implements GcmMessageListener  {
    @Override
    public void onMessageReceived(Context context, String from, Bundle data) {
        // ADD YOUR CODE HERE
    }
}

سپس در کلاس Application برنامه خود، MBaaS SDK را مشابه زیر مقداردهی اولیه کنید:

MBaaS.init(this, new CustomMessageReceivedListener(), false);

کار تمام شد و حال هرگاه یک پوش نوتیفیکیشن دریافت شود، علاوه بر اینکه در نوار اعلان نمایش داده می‌شود، متد onMessageReceived کلاس دلخواه شما نیز فراخوانی خواهد شد.

عدم نمایش پوش نوتیفیکیشن در نوار اعلان

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

  • رابط کاربری، در این روش باید در هنگام ایجاد قالب پوش گزینه “پیام پنهان” را انتخاب کنید. به شرطی که کدهای فوق پیاده‌سازی شده باشند، کلیه پیام‌هایی که با استفاده از این قالب ارسال شوند، در نوار اعلان نمایش داده نخواهند شد و تنها متد onMessageReceived کلاس موردنظر شما فراخوانی خواهد شد.

hide_push

  • برنامه نویسی، در این روش باید SDK MBaaS خود را مشابه زیر مقداردهی اولیه کنید:
MBaaS.init(this, new CustomMessageReceivedListener(), true);

مقدار آرگومان سوم اگر true تنظیم شود، در همه شرایط تنها متد onMessageReceived فراخوانی خواهد شد.

لازم به ذکر است که این قابلیت در SDK نسخه ۰٫۹٫۲ اضافه شده است و جهت استفاده از آن باید در فایل build.gradle برنامه خود نسخه SDK را مشابه خط زیر به ۰٫۹٫۲ یا نسخه ایی جدیدتر ارتقاء دهید:

compile 'ir.mbaas:sdk:1.4.0'

قالب اطلاعات دریافتی

جهت دریافت و پردازش اطلاعات پوش نوتیفیکیشن ارسال‌شده از طرف زیرساخت MBaaS، باید از پارامتر سوم (data) متد onMessageReceived که از نوع Bundle است، استفاده نمائید. به عنوان مثال برای گرفتن Title پوش نوتیفیکیشن باید از کد زیر استفاده شود:

String title = data.getString("Title");

تگ‌ها ; ,

نظر دهید:

لطفا در نظر داشته باشید که بر اظهارنظرها نظارت می شود. بنابراین، در نظرات خود از کلمات اسپم و ... استفاده نکنید، در غیر این صورت نظر شما حذف خواهد شد.