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

Prompt و permission در Web Push و PWA

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

قاعده اصلی مرورگر

Notification permission فقط در Secure Context قابل استفاده است. بهتر است درخواست اصلی در نتیجه اقدام کاربر اجرا شود. اگر کاربر permission را denied کند، JavaScript نمی‌تواند آن را به حالت granted برگرداند و کاربر باید تنظیمات مرورگر را تغییر دهد.

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

حالتتنظیمرفتار
خودکار autoPrompt: true زمان نمایش از تنظیمات سرویس خوانده می‌شود.
دستی autoPrompt: false کد شما showPrompt یا requestPermission را فراخوانی می‌کند.
رابط سفارشی Custom Prompt در پنل رویداد pushfaCustomPromptRequest اجرا می‌شود و UI با شماست.

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

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

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

درخواست دستی

<script>
  window.PushfaConfig = { autoPrompt: false };
</script>
<script src="https://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>

Prompt سفارشی

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 اضافه شود. permission داخل نسخه نصب‌شده PWA درخواست می‌شود، نه Safari معمولی. برای راهنمای نصب می‌توانید showIosInstallPrompt را فراخوانی کنید.