منتشر شده: ۱۶ ژوئیه ۲۰۲۶
از کروم ۱۵۲، اعلانهای برنامههای وب پیشرونده (PWA) که روی macOS نصب میشوند، به جای گوگل کروم، به خود PWA نسبت داده میشوند.
این یک پیشرفت قابل توجه در تجربه کاربری است و باعث میشود برنامههای وب با macOS یکپارچهتر به نظر برسند. با این حال، تغییرات مهمی نیز در نحوه مدیریت مجوزهای اعلان و نحوه رفتار برخی از APIهای اعلان ایجاد میکند.
چه چیزی در حال تغییر است؟
پیش از این، تمام اعلانهای ارسالی توسط PWAها در سطح سیستم عامل به کروم نسبت داده میشدند. در مرکز اعلانهای macOS، آنها در زیر «گوگل کروم» ظاهر میشدند و از آیکون کروم استفاده میکردند. برای غیرفعال کردن اعلانها، کاربران باید از کنترلهای داخل کروم استفاده میکردند، نه تنظیمات سیستم macOS.
با استفاده از قابلیت انتساب اعلان ، وقتی سایتی به عنوان یک PWA نصب میشود، macOS با آن به عنوان یک برنامه مجزا برای اعلانها رفتار میکند. این موضوع هم برای PWAهای تازه نصب شده و هم برای PWAهایی که کاربر قبلاً نصب کرده است، صدق میکند.
مزایا:
- هویت برند : اعلانها نام و آیکون PWA را در مرکز اعلانها و بنرهای macOS نشان میدهند.
- کنترلهای کاربری شناختهشده : کنترلهای اعلان برای این برنامهها اکنون دقیقاً در جایی که کاربران انتظار دارند ظاهر میشوند: در تنظیمات سیستمهای macOS (نه کروم).
- کنترل جزئی : کاربران میتوانند تنظیمات اعلانهای برنامههای PWA را به صورت جداگانه مدیریت کنند (برای مثال، سبکهای هشدار، رفتار صفحه قفل).
- حالتهای فوکوس : برنامههای وب پیشرو (PWA) را میتوان به صورت جداگانه در پروفایلهای فوکوس macOS (مزاحم نشوید) مجاز یا بیصدا کرد.


جریان جدید مجوزها
از آنجا که macOS اکنون با PWA به عنوان یک برنامه جداگانه رفتار میکند، PWA قبل از اینکه بتواند اعلانها را نمایش دهد، باید مجوز اعلان در سطح سیستم عامل را دریافت کند . این امر جریان مجوز را برای کاربران جدید و فعلی تغییر میدهد.
کاربران جدید (درخواست مجوز برای اولین بار)
اگر کاربری یک PWA نصب کند و سایت پس از نصب، درخواست مجوز اعلان کند:
- کروم از درخواست مجوز سطح مرورگر (منوی کشویی نوار آدرس) صرف نظر میکند.
- کروم بلافاصله درخواست مجوز سیستم macOS را برای PWA فعال میکند.


کاربران فعلی (مسیر مهاجرت)
اگر کاربری قبلاً مجوز اعلانها را به وبسایت شما در کروم اعطا کرده باشد و سپس PWA را نصب کند (یا قبلاً نصب کرده باشد)، همچنان باید مجوز سطح سیستمعامل را به PWA اعطا کند.
برای اینکه این انتقال تا حد امکان روان باشد:
- اولین باری که PWA سعی در ارسال اعلان میکند، macOS درخواست مجوز سیستم را نمایش میدهد.
- در صورت تأیید کاربر، اعلانها به طور یکپارچه به کار خود ادامه خواهند داد.
- اگر کاربر این درخواست را نادیده بگیرد یا رد کند، PWA یک نشانگر درون برنامهای (معمولاً در نوار عنوان یا منوی برنامه) نشان میدهد که او را به تنظیمات سیستم macOS هدایت میکند تا مجوزها را به صورت دستی فعال کند.



تأثیر توسعهدهنده: منسوخ شدن requireInteraction در macOS
در macOS، اینکه یک اعلان تا زمانی که کاربر آن را رد کند روی صفحه بماند ( "Persistent" ) یا به طور خودکار ناپدید شود ( "Temporary" ) یک تنظیم تحت کنترل کاربر است که برای هر برنامه در تنظیمات سیستم macOS اعمال میشود.
به دلیل این طراحی سیستم عامل، کروم دیگر در صورت فعال بودن attribution، گزینه requireInteraction را در رابط برنامهنویسی اعلانها (Notification API) در macOS در نظر نمیگیرد .
این برای کد شما چه معنایی دارد:
اگر برنامه شما برای نمایش اعلانهای مهم روی صفحه به requireInteraction: true متکی است، این موضوع دیگر در macOS تضمین نمیشود. در عوض، باید:
- برنامه خود را با فرض اینکه اعلانها ممکن است گذرا ( موقتی ) باشند، طراحی کنید.
- کاربرانی را که به اعلانهای مداوم نیاز دارند، تشویق کنید تا سبک هشدار اعلان PWA را در
System Settings > Notifications > [Your PWA]به صورت «مداوم» پیکربندی کنند.

تأثیر توسعهدهنده: API نشانگذاری برنامه نیاز به مجوز اعلان دارد
API نشانگذاری برنامه به برنامههای وب اجازه میدهد تا یک نشان روی آیکون برنامه خود تنظیم کنند (برای مثال، نمایش تعداد پیامهای خوانده نشده). در macOS، نشانگذاری آیکون برنامه از نظر فنی به تنظیمات اعلان برنامه گره خورده است. زیرا PWA اکنون هویت اعلان بومی خود را دارد:
- مجوز مورد نیاز : برای نمایش نشان روی آیکون داک، PWA باید مجوز اعلان در سطح سیستم عامل را فعال کند. این با استانداردهای پلتفرم macOS مطابقت دارد و با نحوه مدیریت API نشانگذاری برای برنامههای وب توسط سافاری مطابقت دارد.
- شکست خاموش : اگر کاربر «آیکون برنامه نشان» را در
System Settings > Notifications > [Your PWA]غیرفعال کند، یا مجوز اعلان را به طور کامل رد کند، فراخوانیهایnavigator.setAppBadge()همچنان در جاوا اسکریپت (بدون ایجاد خطا) موفق خواهند بود، اما نشان در داک نمایش داده نمیشود. اگر برنامه شما به نشانگذاری متکی است، حتماً مجوز اعلان را درخواست کنید تا از نمایش نشان اطمینان حاصل شود.
تأثیر مدیریت سازمانی
برای مدیران سازمانی که دستگاههای macOS را مدیریت میکنند و میخواهند مجوزهای اعلان را از قبل اعطا کنند:
- سیاست کروم : شما همچنان باید سیاست کروم (
NotificationsAllowedForUrls) را طوری پیکربندی کنید که به مبدا PWA مجوز بدهد. - سیاست macOS : علاوه بر این، اکنون باید یک نمایه پیکربندی macOS (MDM) را برای اعطای مجوزهای اعلان به شناسه بسته PWA (App Shim) از قبل مستقر کنید.
بدون وجود هر دو سیاست، کاربران همچنان در سطح سیستم عامل از آنها سوال پرسیده خواهد شد.
بهترین شیوهها برای توسعهدهندگان
- بررسی وضعیت مجوزها : همیشه قبل از ارسال اعلان،
Notification.permissionرا بررسی کنید. - پیامهای متنی : اگر تشخیص دادید که مجوز در سطح وب اعطا شده است اما اعلانها نمایش داده نمیشوند (که در صورت لغو مجوز در سطح سیستم عامل میتواند اتفاق بیفتد)، کاربر را به تنظیمات سیستم macOS خود راهنمایی کنید.
- برای اعلانهای گذرا آماده شوید : برای جریانهای کاربری حیاتی در macOS به
requireInteractionتکیه نکنید.