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 را انتخاب کنید. پیشنمایش پایین فهرست، متن و ظاهر دکمههای تأیید و رد را قبل از ذخیره نشان میدهد؛ با تغییر عنوان، متن دکمهها، رنگها و فونت، همین پیشنمایش همان لحظه بهروزرسانی میشود.
درخواست دستی
<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 را فراخوانی کنید.
