【问题标题】:notificationclick event service worker通知点击事件服务工作者
【发布时间】:2018-09-07 14:56:30
【问题描述】:


我正在与服务人员合作以在我的用户之间显示通知。在我的代码中,我包含了notificationclick 事件。通过这个事件,我试图管理两个案例。第一种情况,如果在我的浏览器中打开了我网站的页面,请不要打开它,而是专注于它。第二种情况,如果我的浏览器没有显示我的网站,请打开它并专注于它。但是我没有成功...

这是我当前的代码:

self.addEventListener('notificationclick', function (e) {
    console.log('notification was clicked')
    var notification = e.notification;
    var action = e.action;

    if (action === 'close') {
        notification.close();
    } else {
        // This looks to see if the current is already open and
        // focuses if it is
        e.waitUntil(
            self.clients.matchAll().then(function(clientList) {
                console.log(clientList)
                if (clientList.length > 0) {
                    console.log(clientList[0])
                    return clientList[0].focus();
                }
                return self.clients.openWindow('/');
            })
       );
   };
});

【问题讨论】:

    标签: javascript push-notification service-worker workbox


    【解决方案1】:
    self.addEventListener("notificationclick", (event) => {
        event.waitUntil(async function () {
            const allClients = await clients.matchAll({
                includeUncontrolled: true
            });
            let chatClient;
            let appUrl = 'xyz';
            for (const client of allClients) {
            //here appUrl is the application url, we are checking it application tab is open
                if(client['url'].indexOf(appUrl) >= 0) 
                {
                    client.focus();
                    chatClient = client;
                    break;
                }
            }
            if (!chatClient) {
                chatClient = await clients.openWindow(appUrl);
            }
        }());
    });
    

    【讨论】:

    • 我们需要在哪个地方放置这段代码。服务人员或内部项目
    • @satish Kumar 你可以在服务工作者注册文件中添加这个
    • 嘿,有人成功了吗?我应付不来。使用 event.waitUntil 和不使用该事件都不会触发。什么也没发生。请帮忙:)
    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2018-02-27
    • 2019-01-04
    • 2020-06-27
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多