Quantcast
Channel: WordPress.org Forums » All Topics
Viewing all articles
Browse latest Browse all 59525

Setup delay to show slidedown permission message

$
0
0

Replies: 0

Hello!

I’m tryin to setup delay to prompt permission message after X visits only.

But i want to show slidedown permission message with my text and nice buttons yes/now (showHttpPrompt), and if user clicks “Yes” – to show him deafult HTTPS promt which calls by registerForPushNotifications();

But i can’t correctly modify script from this documentation.

If i’m changing
window.OneSignal.registerForPushNotifications();
to
window.OneSignal.showHttpPrompt();
(like in this ticket) – i see this slidedown window, but if i click “yes” – nothing happens.

I’ve tried to take code from plugin source code and changed:
window.OneSignal.registerForPushNotifications();
to:

window.OneSignal.showHttpPrompt();
window.OneSignal.init(window._oneSignalInitOptions);

It works, if i click yes in slidedown permission than i see classic permission request near to the SSL symbol. But in console i see massage about

SdkInitError {reason: "MultipleInitialization", message: "OneSignal: The OneSignal web SDK can only be initi…remove calls initializing the SDK more than once.", name: "SdkInitError", stack: "SdkInitError: OneSignal: The OneSignal web SDK can…/cdn.onesignal.com/sdks/OneSignalSDK.js:1:147251)"}
reason: "MultipleInitialization"
message: "OneSignal: The OneSignal web SDK can only be initialized once. Extra initializations are ignored. Please remove calls initializing the SDK more than once."

How to correctly modify this script?

<!-- data-cfasync: Ignore CloudFlare's Rocket Loader, which may impact the triggering of the DOMContentLoaded event (see: https://goo.gl/CvZewv) -->
<script data-cfasync="false">
  window.OneSignal = window.OneSignal || [];
  var numVisitsTrigger = 3; /* Number of page visits before prompting user */

  /* Why use .push? See: http://stackoverflow.com/a/38466780/555547 */
  window.OneSignal.push(function() {
    var numVisits = new Number(localStorage['numVisitsTrigger'] || 0);
    numVisits += 1;
    localStorage['numVisitsTrigger'] = numVisits;
    if (numVisits >= numVisitsTrigger) {
      promptAndSubscribeUser();
    }
  });

  function promptAndSubscribeUser() {
    /* Want to trigger different permission messages? See: https://documentation.onesignal.com/docs/permission-requests#section-onesignal-permission-messages */
    window.OneSignal.isPushNotificationsEnabled(function(isEnabled) {
      if (!isEnabled) {
        window.OneSignal.registerForPushNotifications();
      }
    });
  }
</script>

Viewing all articles
Browse latest Browse all 59525

Trending Articles