راهنمای پیادهسازی دکمه (زنگوله) برای عضویت کاربر در اعلانهای وب با دو متد ساده: shouldShowPushfaButton() و pushfaButton()
بهجای نمایش ناگهانی درخواست مرورگر، ابتدا کاربر با یک دکمه آگاهانه انتخاب میکند و نرخ پذیرش بالاتر میرود.
وقتی تعامل کاربر داوطلبانه باشد، احتمال انتخاب Block کمتر میشود و فرصتهای آینده از بین نمیرود.
دکمه را فقط زمانی نشان دهید که منطقی است: نه در iOS، نه وقتی مرورگر بلاک کرده، نه وقتی کاربر از قبل عضو است.
ظاهر دکمه (زنگوله، متن، آیکن اختصاصی) کاملاً در اختیار شماست؛ منطق نمایش و درخواست را Pushfa مدیریت میکند.
اسکریپت Pushfa را در صفحات خود درج کنید. پس از لود شدن اسکریپت، دو متد global در دسترس خواهد بود.
<!-- اسکریپت Pushfa (نمونه) -->
<script src="https://example.com/pushfa/notification.js?api_public_key=YOUR_KEY"></script>
<!-- دکمه زنگوله -->
<button id="pushfaBell" style="display:none">🔔 فعالسازی اعلانها</button>
<script>
// اگر شرایط فراهم بود، دکمه را نمایش بده
if (window.shouldShowPushfaButton()) {
document.getElementById('pushfaBell').style.display = 'inline-flex';
}
// با کلیک کاربر، درخواست عضویت را نمایش بده
document.getElementById('pushfaBell').addEventListener('click', function(){
window.pushfaButton();
});
</script>
این رویکرد باعث میشود فقط کاربرانی که احتمال پذیرش دارند، دعوتنامه عضویت را ببینند.
shouldShowPushfaButton(): boolean
بررسی میکند آیا دکمه باید نمایش داده شود یا خیر.
منطق تصمیمگیری (به طور خلاصه):
Notification.permission === "denied"
→ نمایش نده.localStorage['is_interested_notifications']
برابر null
یا "false"
باشد → نمایش بده.// مثال استفاده
if (window.shouldShowPushfaButton()) {
document.getElementById('pushfaBell').style.display = 'inline-flex';
}
pushfaButton(): void
با کلیک کاربر، درخواست عضویت در اعلانهای وب را نمایش میدهد و در صورت پذیرش، وضعیت کاربر ذخیره میشود.
// اتصال به رویداد کلیک
document.getElementById('pushfaBell').addEventListener('click', function(){
window.pushfaButton();
});
<button id="pushfaBell" class="btn" style="display:none" aria-label="فعالسازی اعلانها">🔔 فعالسازی اعلانها</button>
shouldShowPushfaButton()
چه مقداری برمیگرداند و مقدار Notification.permission
چیست.localStorage['is_interested_notifications']
→ "true"
پس از پذیرش، "false"
پس از عدم تمایل، و null
وقتی تعیین نشده.localStorage['is_interested_notifications_false_until']
→ زمان انقضای عدم نمایش مجدد (در صورت استفاده).آیا میتوان ظاهر دکمه را سفارشی کرد؟
بله، Pushfa فقط منطق را فراهم میکند. شما آزادید هر سبک و مکانی را برای دکمه انتخاب کنید.
اگر کاربر قبلاً پذیرفته باشد چه میشود؟
متد shouldShowPushfaButton()
مقدار false
برمیگرداند و دکمه مخفی میماند.
اگر کاربر Block کرده باشد؟
به خاطر تجربه بهتر، دکمه نمایش داده نمیشود تا از مزاحمت اضافی جلوگیری شود.