未捕获(承诺)类型错误:尝试打开窗口时出现问题
Posted
技术标签:
【中文标题】未捕获(承诺)类型错误:尝试打开窗口时出现问题【英文标题】: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));
【参考方案1】:
在尝试对网络推送通知实施点击操作时遇到了这个问题。使用preventDefault()
解决了它;
https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault
【讨论】:
以上是关于未捕获(承诺)类型错误:尝试打开窗口时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:无法读取未定义的属性“ui”。选择croparea时出现JQuery JCrop问题
解决一堆承诺时出现 Firebase 错误:无法将未定义或 null 转换为对象