Notification Channel اندروید چیست؟ ساخت و مدیریت کانال اعلان
Notification Channel یا کانال اعلان، در اندروید ۸ و بالاتر برای مدیریت رفتار نمایش یک دسته اعلان استفاده میشود. برای مثال، «وضعیت سفارش» و «پیشنهاد فروش» میتوانند کانالهای جدا داشته باشند تا کاربر تنظیمات هر کدام را کنترل کند. کانال، عضوگیری مخاطب یا مقصد ارسال سرور نیست.
در این مقاله:
- کانال را پیش از نمایش ایجاد کنید
- اهمیت کانال و اختیار کاربر
- کانال با Topic و سگمنت چه تفاوتی دارد؟
- مجوز اندروید ۱۳ همچنان لازم است
- وقتی پیام میرسد اما اعلان نمایش ندارد
کانال را پیش از نمایش ایجاد کنید
شناسه کانال را در برنامه تعریف و قبل از نمایش اعلان ثبت کنید. اعلان باید به همان شناسه کانال موجود اشاره کند. نام نمایشی برای کاربر خوانا باشد؛ شناسه فنی را برای هر پیام یا هر اجرای برنامه تغییر ندهید. مستندات رسمی کانالهای اندروید جزئیات چرخه ایجاد و تنظیمات را توضیح میدهد.
نمونه Kotlin زیر برای اپ بومی است. آن را در مسیر راهاندازی مناسب برنامه قرار دهید و هنگام ساخت اعلان از شناسه orders استفاده کنید. مقدار اهمیت، تصمیم اولیه این مثال است و باید با نوع پیام شما تطبیق داده شود.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val manager = getSystemService(NotificationManager::class.java)
val channel = NotificationChannel(
"orders",
"وضعیت سفارش",
NotificationManager.IMPORTANCE_DEFAULT
)
channel.description = "خبرهای مربوط به تغییر وضعیت سفارش"
manager.createNotificationChannel(channel)
}
اهمیت کانال و اختیار کاربر
اهمیت کانال روی شیوه هشدار اثر میگذارد، اما برنامه اختیار مطلق بر تنظیمات کاربر ندارد. ساخت دوباره همان کانال، راه دورزدن انتخاب کاربر یا تحمیل دوباره صدا نیست. برای بازنگری طراحی، رفتار موجود و مسیر ارتقای نسخه را بررسی کنید؛ ساختن شناسه تازه تنها برای بازگرداندن هشدار خاموششده مناسب نیست.
اگر کاربر کانال تبلیغات را خاموش کند، ارسال همان تبلیغ در کانال «وضعیت سفارش» احترام به انتخاب او نیست. دستههای اعلان را بر اساس معنای واقعی پیام بسازید، نه بر اساس راهی برای بیشتر دیدهشدن.
کانال با Topic و سگمنت چه تفاوتی دارد؟
Topic و سگمنت مشخص میکنند چه مخاطبانی پیام را دریافت کنند. کانال مشخص میکند اعلانِ ساختهشده در اپ با چه تنظیمات نمایشی دستهبندی شود. یک کاربر میتواند عضو تاپیک «کتاب» باشد، اما کانال پیشنهادها را در گوشی خاموش کرده باشد. عضویت سمت سرور، مجوز نمایش دستگاه را تغییر نمیدهد.
سگمنتبندی مخاطب را در لایه ارسال طراحی کنید و تنظیمات کانال را در اپ. اگر پیام FCM از مسیر نمایش خودکار سیستم میآید، پیکربندی کانال آن مسیر را هم کنترل کنید. اگر خودتان اعلان محلی میسازید، شناسه کانال را هنگام ساخت اعلان تعیین کنید.
مجوز اندروید ۱۳ همچنان لازم است
وجود کانال، جای مجوز نمایش اعلان را نمیگیرد. در اندروید ۱۳ و بالاتر، برای اعلانهای معمولی باید وضعیت مجوز زمان اجرا را بررسی کنید. مستندات مجوز اعلان شرایط پلتفرم را توضیح میدهد. پنجره مجوز را پس از توضیح ارزش پیام و در موقعیت مرتبط نشان دهید.
اگر اجازه رد شده است، ساخت کانال تازه مشکل رضایت را حل نمیکند. کاربر باید راه واضحی برای دیدن تنظیمات داشته باشد. برای مرور مسیر کامل دریافت، راهنمای پوش نوتیفیکیشن اندروید را مطالعه کنید.
وقتی پیام میرسد اما اعلان نمایش ندارد
- ثبت کانال و یکسانبودن شناسه هنگام نمایش را کنترل کنید.
- مجوز کلی برنامه و وضعیت همان کانال را جدا ببینید.
- اهمیت، صدا و تنظیمات کاربر را بررسی کنید.
- حالت پیشزمینه و پسزمینه و منطق نمایش پیام را مقایسه کنید.
- از نبودن دو مسیر نمایش همزمان و اعلان تکراری مطمئن شوید.
برای یک نسخه تازه، نصب جدید و ارتقا از نسخه قبلی را جدا بررسی کنید؛ کاربران قدیمی ممکن است انتخابهای متفاوتی برای کانال داشته باشند. نتیجه آزمایش روی یک گوشی، رفتار همه نسخهها و تنظیمات را ثابت نمیکند.