【问题标题】:Uncaught (in promise) TypeError: Something went wrong while trying to open the window未捕获(承诺)类型错误:尝试打开窗口时出现问题
【发布时间】:2018-01-15 15:41:54
【问题描述】:

我在点击网络推送通知时尝试打开新链接时遇到上述错误。

我的代码工作正常,我的意思是我可以在单击通知后打开链接,但在控制台中收到此错误,当我输入任何硬编码的 url 时,它在控制台中显示没有错误。

任何帮助将不胜感激。

这是我的 service-worker.js 代码

var link;
try{
self.addEventListener('push', function(e) {
    var data = e.data.json();
    var title = data.title;

        var options = {
            body: data.body
        };
        if(data.link){
            link = data.link;
        }

        if(data.badge){
            options.badge = data.badge;
        }

        if(data.icon){
            options.icon = data.icon;
        }

        if(data.image){
            options.image = data.image;
        }

        e.waitUntil(self.registration.showNotification(title, options));

 });
}
  catch(error){
  console.log('error while sending push notification');
}
 self.addEventListener('notificationclick', function(event) {

 event.notification.close();
 event.waitUntil(clients.openWindow(link));
});

【问题讨论】:

  • 你能提供一个工作小提琴吗?调试起来会更容易
  • 我正在做服务器调用等等,所以很难提供。一切都按预期工作,但在这一行出现控制台错误event.waitUntil(clients.openWindow(link));

标签: javascript push-notification web-push


【解决方案1】:

在尝试对网络推送通知实施点击操作时遇到了这个问题。使用preventDefault() 解决了它;

https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-24
    • 2020-03-16
    • 2010-11-23
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多