Javascript - 在Android设备上单击服务工作者通知后打开浏览器选项卡

问题描述 投票:1回答:1

我正在为一家餐馆制作一个网络应用程序,并且已经达到了我的通知让我知道新订单的时间点。该应用程序的工作流程是:

1)服务员通过Android Chrome登录以检查待处理的票证 2)客户端使用其他设备注册票证 3)服务员的设备上显示通知

到目前为止,一切正常。我想知道的是:有没有办法在使用其他应用程序时(或在查看主屏幕时)点击通知,在相应的选项卡上打开Chrome(服务员登录的位置)?

这是我的代码:

App.js

var n = _registration.showNotification('Menú',{
     body: 'Tienes un nuevo pedido',
     requireInteration: true,
});

服务人员

self.addEventListener('notificationclick', function(event) {
    let url = 'https://example.com/some-path/';
    event.preventDefault();

    event.notification.close(); // Android needs explicit close.
    event.waitUntil(
        clients.matchAll({type: 'window'}).then( windowClients => {
            // Check if there is already a window/tab open with the target URL
            for (var i = 0; i < windowClients.length; i++) {
                var client = windowClients[i];
                // If so, just focus it.
                if (client.url === url && 'focus' in client) {
                    return client.focus();
                }
            }
            // If not, then open the target URL in a new window/tab.
            if (clients.openWindow) {
                return clients.openWindow(url);
            }
        })
    );
});

这在桌面浏览器中运行得非常好,但由于服务员使用的是Android手机,这还不够。谢谢。

javascript android notifications service-worker
1个回答
0
投票

对我来说,client.focus()也不起作用,但是当我点击通知时 - 它实际上集中了我的应用程序。我的代码的不同之处在于我没有event.preventDefault();

© www.soinside.com 2019 - 2024. All rights reserved.