【问题标题】:Redirection in progressive web app渐进式 Web 应用程序中的重定向
【发布时间】:2016-06-23 08:13:34
【问题描述】:

我试图在点击通知时重定向到渐进式网络应用程序中的特定网址,但它没有重定向。

案例 1:如果 web 应用程序未添加到主屏幕,则在通知单击时浏览器窗口打开并重定向到所需的 url。

案例 2:如果将网络应用添加到主屏幕,则登录页面是主页,而不是所需的 url。

self.addEventListener('notificationclick', function(event) {
        event.notification.close();
        event.waitUntil(
                clients.matchAll({
                        type: "window"
                }).then(function(clientList) {
                        console.log(clientList);
                        for (var i = 0; i < clientList.length; i++) {
                                var client = clientList[i];
                                if (client.url == '/' && 'focus' in client)
                                        return client.focus();
                        }
                        if (clients.openWindow) {
                                if (event.notification.tag == 'syncTest') {
                                        console.log(event);
                                        var url = '/#/view-car?start_time=' + getFinalData[0].start_time + '&end_time=' + getFinalData[0].end_time + '&pickup_venue=' + getFinalData[0].pickup_venue;
                                        return clients.openWindow(url);
                                } else {
                                        var url = '/#/list-venues?start_time=' + getFinalData[0].start_time + '&end_time=' + getFinalData[0].end_time + '&car=' + getFinalData[0].car + '&fuel=' + getFinalData[0].fuel;
                                        console.log(url);
                                        return clients.openWindow(url);
                                }
                         }
                })
        );
});

提前非常感谢!!

【问题讨论】:

  • 我建议尝试使用完整的 URL,例如 'http://localhost/#/view-car...'

标签: javascript angularjs service-worker progressive-web-apps


【解决方案1】:

你可以使用类似的东西:

if (client.url == 'yourUrl' && 'focus' in client)
     return client.focus();
else{
     client.navigate('yourUrl').then(function(c){
           return c.focus();
    });     
}

这对我有用。也可以有其他方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2019-05-16
    • 1970-01-01
    • 2020-10-04
    相关资源
    最近更新 更多