انتساب اعلان بومی برای برنامه‌های وب در macOS

مارین کرویسلبرینک
Marijn Kruisselbrink
دن مورفی
Dan Murphy

منتشر شده: ۱۶ ژوئیه ۲۰۲۶

از کروم ۱۵۲، اعلان‌های برنامه‌های وب پیش‌رونده (PWA) که روی macOS نصب می‌شوند، به جای گوگل کروم، به خود PWA نسبت داده می‌شوند.

این یک پیشرفت قابل توجه در تجربه کاربری است و باعث می‌شود برنامه‌های وب با macOS یکپارچه‌تر به نظر برسند. با این حال، تغییرات مهمی نیز در نحوه مدیریت مجوزهای اعلان و نحوه رفتار برخی از APIهای اعلان ایجاد می‌کند.

چه چیزی در حال تغییر است؟

پیش از این، تمام اعلان‌های ارسالی توسط PWAها در سطح سیستم عامل به کروم نسبت داده می‌شدند. در مرکز اعلان‌های macOS، آنها در زیر «گوگل کروم» ظاهر می‌شدند و از آیکون کروم استفاده می‌کردند. برای غیرفعال کردن اعلان‌ها، کاربران باید از کنترل‌های داخل کروم استفاده می‌کردند، نه تنظیمات سیستم macOS.

با استفاده از قابلیت انتساب اعلان ، وقتی سایتی به عنوان یک PWA نصب می‌شود، macOS با آن به عنوان یک برنامه مجزا برای اعلان‌ها رفتار می‌کند. این موضوع هم برای PWAهای تازه نصب شده و هم برای PWAهایی که کاربر قبلاً نصب کرده است، صدق می‌کند.

مزایا:

  • هویت برند : اعلان‌ها نام و آیکون PWA را در مرکز اعلان‌ها و بنرهای macOS نشان می‌دهند.
  • کنترل‌های کاربری شناخته‌شده : کنترل‌های اعلان برای این برنامه‌ها اکنون دقیقاً در جایی که کاربران انتظار دارند ظاهر می‌شوند: در تنظیمات سیستم‌های macOS (نه کروم).
  • کنترل جزئی : کاربران می‌توانند تنظیمات اعلان‌های برنامه‌های PWA را به صورت جداگانه مدیریت کنند (برای مثال، سبک‌های هشدار، رفتار صفحه قفل).
  • حالت‌های فوکوس : برنامه‌های وب پیشرو (PWA) را می‌توان به صورت جداگانه در پروفایل‌های فوکوس macOS (مزاحم نشوید) مجاز یا بی‌صدا کرد.
منسوب به «گوگل کروم» با آیکون کروم.
قبل: منتسب به «گوگل کروم» با آیکون کروم.
منسوب به «نام PWA» با آیکون سفارشی PWA.
بعد از: به «نام PWA» با آیکون سفارشی PWA نسبت داده شد.

جریان جدید مجوزها

از آنجا که macOS اکنون با PWA به عنوان یک برنامه جداگانه رفتار می‌کند، PWA قبل از اینکه بتواند اعلان‌ها را نمایش دهد، باید مجوز اعلان در سطح سیستم عامل را دریافت کند . این امر جریان مجوز را برای کاربران جدید و فعلی تغییر می‌دهد.

کاربران جدید (درخواست مجوز برای اولین بار)

اگر کاربری یک PWA نصب کند و سایت پس از نصب، درخواست مجوز اعلان کند:

  1. کروم از درخواست مجوز سطح مرورگر (منوی کشویی نوار آدرس) صرف نظر می‌کند.
  2. کروم بلافاصله درخواست مجوز سیستم macOS را برای PWA فعال می‌کند.
پنجره‌ی مجوزهای سیستم macOS: نام PWA می‌خواهد برای شما اعلان ارسال کند. اعلان‌ها ممکن است شامل هشدارها، صداها و نشان‌های آیکون، با دکمه‌های «اجازه ندهید» و «اجازه دهید» باشند.
پنجره‌ی مجوز سیستم macOS برای PWA نصب‌شده.
فلوچارتی که فرآیند مجوزدهی PWA را نشان می‌دهد. با عبارت «PWA درخواست مجوز می‌کند؟» شروع می‌شود و به تصمیم‌گیری «نصب شده است؟» منجر می‌شود. اگر «بله»، اعلان کروم را رد می‌کند و اعلان سیستم macOS را نشان می‌دهد. اگر «خیر»، اعلان مرورگر کروم را نشان می‌دهد، کاربر PWA را نصب می‌کند و سپس اعلان سیستم macOS را نشان می‌دهد.
نمودار جریان فرآیند صدور مجوز اعلان PWA.

کاربران فعلی (مسیر مهاجرت)

اگر کاربری قبلاً مجوز اعلان‌ها را به وب‌سایت شما در کروم اعطا کرده باشد و سپس PWA را نصب کند (یا قبلاً نصب کرده باشد)، همچنان باید مجوز سطح سیستم‌عامل را به PWA اعطا کند.

برای اینکه این انتقال تا حد امکان روان باشد:

  1. اولین باری که PWA سعی در ارسال اعلان می‌کند، macOS درخواست مجوز سیستم را نمایش می‌دهد.
  2. در صورت تأیید کاربر، اعلان‌ها به طور یکپارچه به کار خود ادامه خواهند داد.
  3. اگر کاربر این درخواست را نادیده بگیرد یا رد کند، PWA یک نشانگر درون برنامه‌ای (معمولاً در نوار عنوان یا منوی برنامه) نشان می‌دهد که او را به تنظیمات سیستم macOS هدایت می‌کند تا مجوزها را به صورت دستی فعال کند.
درخواست نصب PWA که به کاربر اطلاع می‌دهد اعلان‌ها در تنظیمات سیستم مک غیرفعال هستند و دکمه‌ای برای رفتن به آنجا وجود دارد.
پیام درون برنامه‌ای در PWA که کاربر را به تنظیمات سیستم macOS هدایت می‌کند.
تنظیمات برنامه با گزینه‌ای برای روشن یا خاموش کردن اعلان‌ها و یک نشانگر در تنظیمات سیستم برای فعال کردن اعلان‌ها.
تنظیمات برنامه در کروم با نشانگری برای باز کردن تنظیمات سیستم macOS.
درخواست برای برنامه درون مرورگر که به کاربر اطلاع می‌دهد اعلان‌ها در تنظیمات سیستم مک غیرفعال هستند و دکمه‌ای برای رفتن به آنجا وجود دارد.
پیام درون مرورگر که کاربر را به تنظیمات سیستم macOS هدایت می‌کند.

تأثیر توسعه‌دهنده: منسوخ شدن requireInteraction در macOS

در macOS، اینکه یک اعلان تا زمانی که کاربر آن را رد کند روی صفحه بماند ( "Persistent" ) یا به طور خودکار ناپدید شود ( "Temporary" ) یک تنظیم تحت کنترل کاربر است که برای هر برنامه در تنظیمات سیستم macOS اعمال می‌شود.

به دلیل این طراحی سیستم عامل، کروم دیگر در صورت فعال بودن attribution، گزینه requireInteraction را در رابط برنامه‌نویسی اعلان‌ها (Notification API) در macOS در نظر نمی‌گیرد .

این برای کد شما چه معنایی دارد:

اگر برنامه شما برای نمایش اعلان‌های مهم روی صفحه به requireInteraction: true متکی است، این موضوع دیگر در macOS تضمین نمی‌شود. در عوض، باید:

  • برنامه خود را با فرض اینکه اعلان‌ها ممکن است گذرا ( موقتی ) باشند، طراحی کنید.
  • کاربرانی را که به اعلان‌های مداوم نیاز دارند، تشویق کنید تا سبک هشدار اعلان PWA را در System Settings > Notifications > [Your PWA] به صورت «مداوم» پیکربندی کنند.
تنظیمات سیستم macOS، که تنظیمات سبک هشدار را با نمایش موقت و مداوم برجسته می‌کند.
تنظیمات سیستم macOS برای PWA که تنظیمات سبک هشدار (موقتی در مقابل دائمی) را نشان می‌دهد.

تأثیر توسعه‌دهنده: API نشان‌گذاری برنامه نیاز به مجوز اعلان دارد

API نشان‌گذاری برنامه به برنامه‌های وب اجازه می‌دهد تا یک نشان روی آیکون برنامه خود تنظیم کنند (برای مثال، نمایش تعداد پیام‌های خوانده نشده). در macOS، نشان‌گذاری آیکون برنامه از نظر فنی به تنظیمات اعلان برنامه گره خورده است. زیرا PWA اکنون هویت اعلان بومی خود را دارد:

  • مجوز مورد نیاز : برای نمایش نشان روی آیکون داک، PWA باید مجوز اعلان در سطح سیستم عامل را فعال کند. این با استانداردهای پلتفرم macOS مطابقت دارد و با نحوه مدیریت API نشان‌گذاری برای برنامه‌های وب توسط سافاری مطابقت دارد.
  • شکست خاموش : اگر کاربر «آیکون برنامه نشان» را در System Settings > Notifications > [Your PWA] غیرفعال کند، یا مجوز اعلان را به طور کامل رد کند، فراخوانی‌های navigator.setAppBadge() همچنان در جاوا اسکریپت (بدون ایجاد خطا) موفق خواهند بود، اما نشان در داک نمایش داده نمی‌شود. اگر برنامه شما به نشان‌گذاری متکی است، حتماً مجوز اعلان را درخواست کنید تا از نمایش نشان اطمینان حاصل شود.

تأثیر مدیریت سازمانی

برای مدیران سازمانی که دستگاه‌های macOS را مدیریت می‌کنند و می‌خواهند مجوزهای اعلان را از قبل اعطا کنند:

  1. سیاست کروم : شما همچنان باید سیاست کروم ( NotificationsAllowedForUrls ) را طوری پیکربندی کنید که به مبدا PWA مجوز بدهد.
  2. سیاست macOS : علاوه بر این، اکنون باید یک نمایه پیکربندی macOS (MDM) را برای اعطای مجوزهای اعلان به شناسه بسته PWA (App Shim) از قبل مستقر کنید.

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

بهترین شیوه‌ها برای توسعه‌دهندگان

  1. بررسی وضعیت مجوزها : همیشه قبل از ارسال اعلان، Notification.permission را بررسی کنید.
  2. پیام‌های متنی : اگر تشخیص دادید که مجوز در سطح وب اعطا شده است اما اعلان‌ها نمایش داده نمی‌شوند (که در صورت لغو مجوز در سطح سیستم عامل می‌تواند اتفاق بیفتد)، کاربر را به تنظیمات سیستم macOS خود راهنمایی کنید.
  3. برای اعلان‌های گذرا آماده شوید : برای جریان‌های کاربری حیاتی در macOS به requireInteraction تکیه نکنید.