为什么 iOS 上的 Safari 中的 navigator.setAppBadge() 在没有数字参数的情况下不能工作?

问题描述 投票:0回答:0

根据规格:

https://www.w3.org/TR/badging/#example-showing-ready-status-on-the-app-icon

navigator.setAppBadge() 没有 arg 应该用不包含数字的徽章提醒用户,但事实并非如此。你可以直接从 service worker 的 web inspector 自己尝试(顺便说一句,当它安装在主页上时,为什么我不能得到 web app 的 web inspector?)。

为什么这不是规格?这是 Apple 的设计,还是 bug?

如果我在没有 arg 的情况下尝试它,当然是来自 service worker,它什么也不做。如果我输入一个数字:

navigator.setAppBadge(23)

...它工作正常。 (顺便说一句,我的 iPhone 13 mini 上似乎显示了高达 999,999 的数字而没有被剪裁。)这一切都是在尝试使用 Web Push API 为我的 Web 应用程序显示通知和徽章的背景下进行的,其唯一目的是告诉用户轮到游戏了。我即将意识到的是,由于您只能在“添加到主屏幕”的网站的服务工作者中处理推送事件,并且当网络应用程序被隐藏时,服务工作者似乎停止运行,整个练习是相当无用的。推送通知和徽章的主要用途是让用户在当前不使用 Web 应用程序时返回到 Web 应用程序——如果他们关注它,我可以让我自己的弹出通知出现。

所以我进一步的问题是,我是不是误解了什么?

javascript web-applications service-worker web-push
© www.soinside.com 2019 - 2024. All rights reserved.