ข้ามไปยังเนื้อหา

วิธีสร้างวิดเจ็ตการสมัครรับข้อมูลแบบกำหนดเอง

การสร้างวิดเจ็ตการสมัครรับข้อมูล

Anchor link to

หากวิดเจ็ตเริ่มต้นไม่ตรงตามเป้าหมายและความต้องการของคุณ คุณสามารถสร้างวิดเจ็ตการสมัครรับข้อมูลแบบกำหนดเองได้โดยทำตามขั้นตอนที่อธิบายไว้ด้านล่าง

  1. เพิ่ม <div> ที่ซ่อนอยู่ซึ่งมีข้อความแจ้งให้สมัครรับข้อมูลไปยังโปรเจกต์ของคุณ
<div class="push-notification-widget push-notification-widget_hidden" id="push-notification-widget">
<div class="push-notification-widget__title">
Don't miss anything important — subscribe to push notifications!
</div>
<div class="push-notification-widget__control">
<button class="push-notification-widget__button" type="button" onClick="Pushwoosh.subscribe()">
Subscribe
</button>
</div>
<div class="push-notification-widget__success">
You're subscribed
</div>
</div>

2. กำหนดสไตล์ของวิดเจ็ต

<style>
.push-notification-widget_hidden {
display: none;
}
.push-notification-widget__success {
display: none;
}
.push-notification-widget_subscribed .push-notification-widget__title {
display: none;
}
.push-notification-widget_subscribed .push-notification-widget__control {
display: none;
}
.push-notification-widget_subscribed .push-notification-widget__success {
display: block;
}
</style>

3. เมื่อ Pushwoosh WebSDK เริ่มต้นทำงานแล้ว ให้ตรวจสอบว่าผู้ใช้ได้สมัครรับข้อมูลแล้วหรือบล็อกคำขอสิทธิ์การเข้าถึงหรือไม่ หากยัง ให้แสดงวิดเจ็ต

<script>
var $subscriptionWidget = document.getElementById('push-notification-widget');
var Pushwoosh = Pushwoosh || [];
// show a success message if a device subscribes to push notifications
Pushwoosh.push(['onSubscribe', () => {
$subscriptionWidget.classList.add('push-notification-widget_subscribed');
}]);
Pushwoosh.push(() => {
/* now WebSDK is ready and you can use public methods. */
// create an array for Promise.all
var actions = [];
// check device's permission on push notifications
var permission = Pushwoosh.driver.getPermission();
// check whether a device is registered in Pushwoosh and can receive push notifications
var isSubscribed = Pushwoosh.isSubscribed();
actions.push(permission);
actions.push(isSubscribed);
// wait for all actions resolved
Promise.all(actions)
.then((result) => {
var permission = result[0];
var isSubscribed = result[1];
// if push notifications are not blocked on a device (can show native permission prompt)
// and if the device is not subscribed to push notifications (including manual unsubscribe)
// show notification widget
if (permission !== 'denied' && !isSubscribed) {
$subscriptionWidget.classList.remove('push-notification-widget_hidden');
}
});
});
</script>