پرسیدن اجازه اعلان در اولین لحظه ورود، همیشه بهترین معرفی قابلیت پوش نیست. کاربر باید بداند چه پیامی میگیرد، چرا آن پیام برایش مفید است و چگونه میتواند دریافت را متوقف کند. از طرف دیگر، رضایت داخل محصول و مجوز سیستمعامل دو موضوع جدا هستند. برای یک تجربه قابل اعتماد، هر دو را در مسیر اتصال پوش در نظر بگیرید.
رضایت محصول را روشن توضیح دهید
پیش از نمایش درخواست، کاربرد اعلان را با یک جمله مشخص بیان کنید؛ برای مثال، اطلاع از وضعیت یک سفارش یا انتشار محتوای انتخابشده. عبارت کلی «برای تجربه بهتر اجازه بدهید» اطلاعات کافی نمیدهد. مخاطب باید بتواند بدون قبول پوش، مسیر اصلی اپ را ادامه دهد.
انتخاب کاربر را با نتیجه واقعی درخواست ثبت کنید. زدن دکمه در رابط شما به معنی موفقیت عضویت سروری یا صدور مجوز سیستمعامل نیست. وضعیت در حال انجام، موفق و ناموفق را از هم جدا کنید و اگر شبکه قطع شد، نتیجهای که رخ نداده نمایش ندهید.
مجوز Android را جدا آزمایش کنید
در Android 13 و بالاتر، بسیاری از اعلانها به مجوز زمان اجرای POST_NOTIFICATIONS وابستهاند. اعلام مجوز در Manifest با گرفتن اجازه از مخاطب یکی نیست. رفتار ردکردن درخواست و امکان تغییر تصمیم در تنظیمات سیستم را نیز در تجربه خود در نظر بگیرید.
این جزئیات را با مستند رسمی مجوز اعلان Android و راهنمای نسخه هدف اپ خود تطبیق دهید. این توضیح درباره اعلان سیستمعامل است؛ نمایش یک پیام داخل صفحه فعال اپ، مسیر رابط متفاوتی دارد.
لغو دریافت را قابل پیدا کردن نگه دارید
اگر فعالسازی پوش در دسترس است، مسیر لغو آن نیز باید روشن باشد. متن دکمهها را دقیق انتخاب کنید: «توقف دریافت در این صفحه» با «لغو عضویت» یک معنی ندارد. توقف محلی ممکن است با بازگشت اپ از بین برود، اما لغو عضویت باید در وضعیت سروری رضایت نیز منعکس شود.
بعد از لغو، یک پیام مناسب و کوتاه نمایش دهید. اگر عملیات سرور موفق نشده، به کاربر نگویید عضویت قطع شده است. همچنین اجازه سیستمعامل را بهجای ترجیح موضوعی تفسیر نکنید؛ کسی که اجازه اعلان داده، لزوماً همه موضوعهای پیامرسانی شما را انتخاب نکرده است.
چهار حالت ضروری برای آزمون
یک بار فعالسازی موفق را روی دستگاه تمیز بررسی کنید. بار دوم، درخواست را رد کنید و ببینید اپ همچنان قابل استفاده است. سپس هنگام عضویت، شبکه را قطع و رفتار خطا را بررسی کنید. در آخر، دریافت را لغو کنید و مطمئن شوید نصب در ارسال بعدی مطابق وضعیت واقعی رضایت رفتار میکند.
برای این آزمونها از دستگاه آزمایشی و پیام محدود استفاده کنید. ارسال عمومی وسیله آزمایش اتصال نیست. نسخه Debug و Release را نیز یکسان فرض نکنید؛ تنظیم پروژه ارائهدهنده، مجوزها و شناسه بسته خروجی نهایی را بررسی کنید.
آیا Initialize خودش اجازه اعلان میگیرد؟
خیر. راهاندازی کلاینت را از انتخاب آگاهانه کاربر جدا نگه دارید. در دیدنکس، ساخت کنترلر پوش بهتنهایی نباید به معنی رضایت مخاطب تفسیر شود.
کد و Manifest درست را از کجا بگیرم؟
از راهنمای پوش ناشر پلتفرم خود را انتخاب کنید. در پنل نیز کد اختصاصی همان رسانه را بگیرید. تنظیمات را با Manifest موجود ادغام کنید و برای رفع یک خطای شبکه، امنیت TLS اپ را غیرفعال نکنید.