wonderPushSDK.getNotificationEnabled


#1

Bonjour,
Je tente d’implémenter un bouton switch custom pour activer / désactiver les notifications.
J’ai besoin de savoir quand j’active le switch si les notifications sont bien actives et quand je le désactive le contraire.

    WonderPush.ready(wonderPushSDK => {
          mainMenu.addEventListener('change', evt => {
            if (evt.target.id === 'notification') {
              wonderPushSDK.setNotificationEnabled(evt.target.checked).then(result => {
                const checkboxes = mainMenu.querySelectorAll('#publication, #like, #comment');
                console.log(wonderPushSDK.getNotificationEnabled(), 'notification enabled ?'); // never return false
                if (wonderPushSDK.getNotificationEnabled()) {
                  checkboxes.forEach(checkbox => {
                    checkbox.disabled = false;
                  });
                } else {
// this instructions never executed
                  checkboxes.forEach(checkbox => {
                    checkbox.disabled = true;
                  });
                }
              });
            }

J’ai remarqué que la méthode setNotificationEnabled() retourne une promesse.
Le problème est que quand je passe false à cette méthode une fois dans la promesse la méthode getNotificationEnabled() retourne toujours true. Est ce normal ?.
Merci pour votre aide.


#2

Bonjour,

Lorsque setNotificationEnabled(false) retourne l’installation est notée comme étant soft opt-out, vient ensuite une étape de propagation du nouvel état via un événement WonderPushEvent avec event.detail.name == "subscription".
Notez que l’état peut changer aussi suite à des actions dans d’autres onglets, comme suite à un clic sur votre bouton par exemple.

Vous pouvez prendre exemple sur le code du plugin optin-switch.

Cordialement,