تفاوت پوش نوتیفیکیشن اندروید و iOS؛ مجوز و رفتار نمایش
تفاوت اصلی پوش نوتیفیکیشن اندروید و iOS فقط شکل ظاهری اعلان نیست. مجوزها، تنظیمات دسته پیام، مسیر انتقال و اجرای برنامه در پیشزمینه یا پسزمینه متفاوتاند. بنابراین ارسال موفق یک پیام به هر دو پلتفرم، رفتار یکسان نمایش و کلیک را ثابت نمیکند.
در این مقاله:
- مسیر انتقال را از نمایش جدا کنید
- مجوز و کنترل کاربر
- کانال اندروید با دسته اقدام iOS یکی نیست
- پیشزمینه، پسزمینه و اپ بسته
- آزمون مشترک برای دو اپ
مسیر انتقال را از نمایش جدا کنید
در اپ اندروید، FCM یکی از مسیرهای رایج دریافت پیام است. در iOS، APNs در انتقال پوش بومی نقش دارد و استفاده از FCM در پروژه، نیاز به پیکربندی صحیح مسیر اپل را حذف نمیکند. پس از دریافت نیز برنامه یا سیستمعامل، بر اساس نوع پیام و وضعیت اپ، درباره نمایش عمل میکند.
اگر توکن معتبر است اما اعلان دیده نمیشود، فوراً مشکل را به سرور نسبت ندهید. ابتدا مجوز و تنظیمات دستگاه، سپس نوع payload و کد نمایش را بررسی کنید. راهنمای پوش اندروید جزئیات مسیر اندروید را توضیح میدهد.
مجوز و کنترل کاربر
در اندروید ۱۳ و بالاتر، مجوز زمان اجرای اعلان برای اعلانهای معمولی اهمیت دارد. در iOS هم دریافت اجازه کاربر و تنظیمات اعلان برنامه باید در جریان عضویت دیده شود. پنجره اجازه را پس از توضیح ارزش پیام و در موقعیت مرتبط نمایش دهید، نه صرفاً برای تمامکردن صفحه شروع برنامه.
کاربر میتواند مجوز را تغییر دهد، صدا را خاموش کند یا نمایش را با حالت تمرکز محدود سازد. رکورد قدیمی توکن در دیتابیس، نشانه رضایت همیشگی نیست. در رابط برنامه، وضعیت موجود را توضیح دهید و راه رفتن به تنظیمات را ارائه کنید؛ برنامه نباید رد مجوز را دور بزند.

کانال اندروید با دسته اقدام iOS یکی نیست
از اندروید ۸، کانال اعلان مشخص میکند یک دسته پیام با چه تنظیماتی نمایش داده شود و کاربر میتواند آن را کنترل کند. در iOS، دستهها و اقدامهای اعلان برای تعریف تعامل استفاده میشوند. این مفاهیم را با Topic یا سگمنت مخاطب اشتباه نگیرید: عضویت در یک تاپیک سمت سرور، مجوز نمایش یک کانال را فعال نمیکند.
| موضوع | اندروید | iOS |
|---|---|---|
| مسیر رایج پوش | FCM و دریافت در اپ سازگار | APNs؛ با امکان اتصال از مسیر FCM |
| کنترل دسته اعلان | Notification Channel و تنظیمات کاربر | تنظیمات اعلان، دستهها و اقدامهای برنامه |
| نمایش هنگام بازبودن اپ | بررسی callback و منطق نمایش | بررسی رفتار ارائه اعلان در پیشزمینه |
برای جزئیات دستهبندی اندروید، مقاله Notification Channel را بخوانید. شناسه کانال را پایدار نگه دارید و برای هر پیام یک کانال تازه نسازید.
پیشزمینه، پسزمینه و اپ بسته
وقتی کاربر داخل اپ است، ممکن است بهجای هشدار سیستمی بهروزرسانی رابط کافی باشد. وقتی بیرون از اپ است، مسیر نمایش متفاوت خواهد بود. نوع notification یا data و تنظیمات پلتفرم را با وضعیت برنامه تطبیق دهید؛ اجرای نامحدود کار پسزمینه را فرض نکنید. تفاوت پوش بیصدا در وب و اپ نیز برای طراحی همگامسازی مهم است.
برای مثال، درباره وضعیت سفارش میتوان هنگام حضور در صفحه همان سفارش، وضعیت را بهروز کرد و خارج از برنامه اعلان مرتبط نشان داد. این سیاست محصول باید در هر دو اپ تعریف شود. اگر کتابخانه نمایش محلی هم استفاده میکنید، مراقب باشید یک پیام در دو مسیر به دو اعلان تبدیل نشود.
آزمون مشترک برای دو اپ
- یک کاربر آزمایشی و پیام با شناسه مشخص انتخاب کنید.
- دریافت را در حالت باز، پسزمینه و بسته برنامه ثبت کنید.
- مجوز ردشده و کانال خاموش را جداگانه بررسی کنید.
- روی اعلان کلیک کنید و بازشدن صفحه درست را با کاربر واردشده و خارجشده ببینید.
- نوسازی توکن، خروج از حساب و ورود با حساب دیگر را کنترل کنید.
- گزارش پذیرش ارسال را از مشاهده واقعی اعلان و اقدام کاربر جدا نگه دارید.
کلید خصوصی ارسال و اعتبارنامه سرویس، در سرور قرار میگیرند. برای آموزش ارسال امن، راهنمای PHP و Laravel مسیر سمت سرور را توضیح میدهد. اشتراک وب نیز با توکن اپ یکسان نیست؛ شرایط وب پوش آیفون را باید جداگانه ارزیابی کنید.