macOS下已安装PWA关闭时,Service Worker调用setAppBadge()无效求助
macOS Sonoma PWA关闭后setAppBadge无法设置角标问题
我开发了一款带有推送通知和角标功能的PWA,目前遇到如下平台差异问题:
- iOS系统:PWA运行正常,即使应用关闭,仍能接收通知且
setAppBadge可正常设置角标; - macOS Sonoma 14.4.1(Safari 17.4.1):将PWA安装到Dock后,应用打开时一切正常;但关闭应用后,虽能收到推送通知提示,
setAppBadge却无法设置角标。
测试代码(Service Worker中)
self.addEventListener('push', (event) => { let promises = []; if ('setAppBadge' in self.navigator) { const badgeCount = 1; //fake data const promise = self.navigator.setAppBadge(badgeCount); promises.push(promise); } promises.push(self.registration.showNotification("You've got mail!")); event.waitUntil(Promise.all(promises)); });
该代码参考自WebKit官方相关文档,我尝试过多种参数组合(数字/字符串参数、调整通知与setAppBadge的调用顺序等),但始终仅在iOS上正常,macOS端关闭应用时无效。
总结:iPhone上关闭PWA后setAppBadge可正常工作,但Mac上不行,恳请各位帮忙解答。
内容的提问来源于stack exchange,提问作者Alex River
相关产品推荐
相关产品推荐

