2017-08-30 1 views
0

Ich habe ein Problem mit Opera Desktop Browser 47, wenn ich versuche, Push-Benachrichtigungen zu senden.Opera Push Notification - Kann das notificationclick-Ereignis nicht auslösen

Während die Benachrichtigungen korrekt zugestellt werden, kann ich das Ereignis 'notificationclick' nicht auslösen. Nichts in der Konsole auch.

Service-Arbeiter: (SW mit Beispieltestdaten Snippet)

self.addEventListener('push', function(event) { 

event.waitUntil(self.registration.pushManager.getSubscription().then(function(o) { 
     if (event.data) { 
      console.log(event.data); 
      var json=event.data.json(); 
      var notifs = []; 
      const title = 'Sample Opera Title'; 
      const options = { 
       body: 'Body of push notification', 
      }; 
      payload_notifs.push(self.registration.showNotification(title, options)); 

      return Promise.all(notifs); 
     } 
    })); 
}); 

self.onnotificationclick = function(event) { 
    console.log('On notification click: ', event.notification.tag); 
    event.notification.close(); 
}; 

Nun, die Sache ist, wenn ich einen Haltepunkt gerade bin setze nach der Benachrichtigung zu senden (nicht das Ereignis vollständig zu lassen), die Benachrichtigung wird geliefert, das "notificationclick" -Ereignis funktioniert auch.

Dies ist eigentlich sehr seltsam, weil die Dinge auf anderen Browsern mit dem gleichen Service-Code funktionieren.

Hat jemand eine Idee?

Antwort

0

Versuchen Sie folgendes:

self.addEventListener('push', function(event) { 

event.waitUntil(self.registration.pushManager.getSubscription().then(function(o) { 
     if (event.data) { 
      console.log(event.data); 
      var json=event.data.json(); 
      var notifs = []; 
      const title = 'Sample Opera Title'; 
      const options = { 
       body: 'Body of push notification', 
      }; 
      payload_notifs.push(self.registration.showNotification(title, options)); 

      Promise.all(notifs); 
     } 
    })); 
}); 

self.onnotificationclick = function(event) { 
    console.log('On notification click: ', event.notification.tag); 
    event.notification.close(); 
}; 

entfernen return, Opera ist bizarr, etwas zu tun.