问题描述
我正在寻找一种方法来处理Notification上的onclick
事件,当应用程序处于前台并且标签处于焦点时。
我有这个:
self.addEventListener('notificationclick',function(event) {....
在我的服务工作者文件firebase-messaging-sw.js
中,但这仅在应用程序处于后台或焦点不清晰时触发。我认为这应该是这样。
我之前是这样做的:
const options = {
body: notification.body,click_action: notification.data.click_action,data: notification.data,tag: tag
};
const notif = new Notification(notification.title,options);
notif.onclick = function() {
alert('sdfsdf'); // working FINE
};
但是,new Notification
在基于Android的浏览器(例如chrome,brave,firefox等)中似乎根本无法正常工作。
现在我正在使用这个:
navigator.serviceWorker.getRegistrations().then(function() { ....
找到我的服务人员注册(ServiceWorkerRegistration
界面)并在其上调用showNotification
方法,该方法可以很好地跨平台工作。
但是如何将onclick
生成的Notification
上的showNotification
绑定
我尝试这样做:
// v = ServiceWorkerRegistration
v.getNotifications({ tag: tag })
.then(function(notificationsList) {
if( notif = notificationsList[0] ) {
console.log("notif: ",notif);
notif.onclick = function() {
alert('new notif');
};
}
});
onclick
被绑定,但是仍然不起作用。
我可能在这里错过了一些东西。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)