徽章 API

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,在一些或所有支持的浏览器中。

注意: 此功能在Web Workers中可用。

徽章 API 为 Web 开发者提供了一种在文档或应用程序上设置徽章的方法,作为通知状态已更改的提示,而无需显示更令人分心的通知。一个常见的用例是具有消息功能的应用程序,它在应用程序图标上显示徽章,以显示新消息已到达。

概念和用法

Web 开发者经常更新文档的 favicon 或标题以指示状态。徽章 API 提供了一种更优雅的方式来显示状态,它提供了一种对用户代理有意义的方法,因此可以以与其余 UI 匹配的方式显示。

徽章类型

徽章有两种类型

  • 文档徽章,通常显示在浏览器标签中,靠近或位于页面图标附近。
  • 应用程序徽章,与已安装 Web 应用程序的图标相关联。这些徽章可能显示在应用程序图标上的停靠栏、架子或主屏幕上,具体取决于所使用的设备。

徽章状态

徽章可以具有三种可能的值之一,这些值是在内部设置的

nothing

表示当前未设置任何徽章。徽章可能处于这种状态,因为应用程序已清除它,或用户代理已重置它。

flag

表示徽章已设置,但没有特定数据要显示。如果应用程序已设置徽章,但没有将任何值传递给方法,徽章将处于此状态。

整数

在设置徽章时传递的值。此值永远不会为0,在设置徽章时传递值为0将导致用户代理将徽章清除为nothing

设置徽章

使用方法setAppBadge()(用于已安装的应用程序)设置徽章。如果未将任何参数传递给这些方法,则徽章值为 flag。用户代理将显示其通知徽章,例如图标上的彩色圆圈。

这些方法还可以传递一个参数contents,它应该是一个数字。然后,此数字将作为徽章的一部分显示。用户代理可能会以某种方式更改此值。例如,如果您传递一个非常大的数字,例如 4000,用户代理可能会在徽章中将其显示为 99+。用户代理也可能会忽略此数据,而是显示一个标记。

清除徽章

使用clearAppBadge()方法清除徽章。这些方法不接受任何参数,并将徽章设置为nothing值。此外,将0值传递给setAppBadge()将把徽章设置为nothing并清除徽章。

接口

无。

对 Navigator 接口的扩展

在与该应用程序关联的图标上设置徽章。

清除与该应用程序关联的图标上的徽章。

对 WorkerNavigator 接口的扩展

WorkerNavigator.setAppBadge()

在与该应用程序关联的图标上设置徽章。

WorkerNavigator.clearAppBadge()

清除与该应用程序关联的图标上的徽章。

示例

要在当前应用程序上设置值为 12 的通知徽章

js
navigator.setAppBadge(12);

要在当前应用程序上清除通知徽章

js
navigator.clearAppBadge();

规范

规范
徽章 API
# setappbadge-method

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见