2017-08-30 81 views
0

我在嘗試發送推送通知時遇到Opera Desktop Browser 47的問題。Opera推送通知 - 無法觸發notificationclick事件

雖然通知正確傳遞,但我無法觸發'notificationclick'事件。控制檯中也沒有任何東西。

服務人員:(SW片段已採樣測試數據)

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(); 
}; 

現在的事情是,當我把一個斷點剛剛發出的通知後(不要讓事件完成),通知正在交付,「通知點擊」事件也在起作用。

這實際上很奇怪,因爲在具有相同服務代碼的其他瀏覽器上工作正常。

有沒有人有想法?

回答

0

試試這個:

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(); 
}; 

刪除return,歌劇是古怪做一些事情。