JavaScript - 在Android设备上点击服务工作者通知后打开浏览器标签页

4
我正在为一家餐厅制作网络应用,并已经实现了当新订单生成时,通过通知提醒的功能。应用的工作流程如下:
1)服务员通过安卓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);
            }
        })
    );
});

这在桌面浏览器上运行得非常好,但由于服务员使用的是安卓手机,这已经不够了。谢谢。

你找到任何解决方案了吗? - yeya
注意:有一个小错别字“requireInteraction”。 - Inversion
1个回答

2
对我来说,client.focus()也无法正常工作,但是当我点击通知时,它确实会将我的应用程序聚焦。 我的代码中的区别在于我没有event.preventDefault();。"最初的回答"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接