توسعه‌دهندگان Web Push / PWA

درخواست عضویت و اجازه دریافت اعلان در Web Push و PWA

مرجع فنی کنترل نمایش درخواست عضویت در مرورگر با autoPrompt، درخواست دستی، رابط سفارشی و PWA در iOS.

مرورگر چه محدودیت‌هایی دارد؟

مرورگر فقط در محیط امن (Secure Context)، مانند سایت دارای HTTPS، اجازه درخواست اعلان می‌دهد. بهتر است این درخواست پس از اقدام کاربر، مثلاً کلیک روی دکمه عضویت، نمایش داده شود. اگر کاربر درخواست را رد کند و وضعیت denied شود، کد سایت نمی‌تواند آن را به granted تغییر دهد؛ خود کاربر باید اجازه اعلان را در تنظیمات مرورگر فعال کند.

حالت‌های پوشفا

حالتتنظیمرفتار
خودکار autoPrompt: true زمان نمایش از تنظیمات سرویس خوانده می‌شود.
دستی autoPrompt: false کد شما showPrompt یا requestPermission را فراخوانی می‌کند.
رابط سفارشی گزینه پرامپت سفارشی سایت در پنل رویداد pushfaCustomPromptRequest منتشر می‌شود؛ نمایش و مدیریت فرم درخواست عضویت را شما پیاده‌سازی می‌کنید.

ظاهرهای آماده درخواست تأیید یا رد در پنل

در «تنظیمات عضویت» سرویس می‌توانید یکی از ظاهرهای آماده OneSignal، Center modal، Bottom sheet، Floating card، Minimal bar، Glass یا Gradient را انتخاب کنید. پیش‌نمایش پایین فهرست، متن و ظاهر دکمه‌های تأیید و رد را قبل از ذخیره نشان می‌دهد؛ با تغییر عنوان، متن دکمه‌ها، رنگ‌ها و فونت، همین پیش‌نمایش همان لحظه به‌روزرسانی می‌شود.

«پیش‌فرض مرورگر» ظاهر آماده پوشفا ندارد و مستقیماً درخواست عضویت اصلی مرورگر را اجرا می‌کند. «پرامپت سفارشی سایت» نیز برای زمانی است که رابط درخواست را خودتان طراحی می‌کنید.
انتخاب ظاهر درخواست عضویت وب‌پوش و پیش‌نمایش درخواست تأیید یا رد در پنل پوشفا
نمونه واقعی ظاهر OneSignal در پنل؛ دکمه «بله» درخواست اصلی عضویت را ادامه می‌دهد و دکمه «خیر» درخواست را می‌بندد و نمایش دوباره را طبق تنظیمات به تعویق می‌اندازد.

درخواست دستی

<script>
  window.PushfaConfig = { autoPrompt: false };
</script>
<script src="https://sdk.pushfa.com/notification-v2.js?api_public_key=YOUR_PUBLIC_KEY" type="module"></script>
<script>
  document.querySelector('#enable-push').addEventListener('click', async () => {
    await window.Pushfa.requestPermission();
  });
</script>

درخواست عضویت با ظاهر دلخواه

window.addEventListener('pushfaCustomPromptRequest', () => {
  document.querySelector('#my-prompt').hidden = false;
});

document.querySelector('#accept').onclick = () => window.Pushfa.requestPermission();
document.querySelector('#later').onclick = () => window.Pushfa.snoozePrompt(7);

iOS و PWA

در iOS 16.4+ ابتدا وب‌اپ باید به Home Screen اضافه شود. اجازه دریافت اعلان داخل نسخه نصب‌شده PWA درخواست می‌شود، نه Safari معمولی. برای راهنمای نصب می‌توانید showIosInstallPrompt را فراخوانی کنید.

Ctrl+I