Subscribes this user device to native notifications. Requires the "Enable web app notifications" setting in "Configure notifications" to be enabled.
This function is intended to make it possible to display a custom button to toggle native notifications on, for example, a start page.
Api.nativeNotificationsSubscribe();
It is recommended to trigger Api.nativeNotificationsSubscribe via the OnReadyJavaScript column. If this is triggered on page load it is likely the user will ignore or block the dialog the first time it is displayed. If this happens it usually requires the user to follow more advanced instructions on how to revert this choice in the operating system/browser.
Use the Session variable IsMobile in the InfoSQL code generating JavaScript if the notifications should only be accessible on mobile and not desktop.
Example to display a button to toggle the subscription in a HTMLView with InfoSQL.
HTMLView
<div>
<p id="thetext"></p>
<button id="thebutton" type="button">Subscribe</button>
</div>
InfoSQL using the OnReadyJavaScript-column
let button = document.querySelector("#thebutton");
let text = document.querySelector("#thetext");
if (Api.nativeNotificationsDenied()){
text.innerText = "Denied in browser";
button.style.display = "none";
}
else if (!Api.nativeNotificationsSupported()){
text.innerText = "Not supported";
button.style.display = "none";
}
else {
Api.nativeNotificationsIsSubscribed()
.then(isSubscribed =>
{
if (!isSubscribed){
text.innerText = "";
button.innerText = "Subscribe";
}
else {
text.innerText = "Already subscribed!";
button.innerText = "Unsubscribe";
}
});
button.addEventListener("click", () =>
{
button.disabled = true;
Api.nativeNotificationsIsSubscribed()
.then(isSubscribed =>
{
if (!isSubscribed){
Api.nativeNotificationsSubscribe();
text.innerText = "Already subscribed!";
button.innerText = "Unsubscribe";
}
else {
Api.nativeNotificationsUnsubscribe()
text.innerText = "";
button.innerText = "Subscribe";
}
button.disabled = false;
});
});
}