You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 08:23:18