Firefox上的Web推送通知

Firefox Firefox 最后更新于: 3 周前
此译文由机器根据英语内容翻译而来,未经人工审核,可能包含错误。若希望修订此内容,请由此处开始。

“Web推送”允许网站给你发送新消息或更新内容的通知。在 Firefox 运行期间,被允许的网站可以向您的浏览器发送通知并将其显示到屏幕上。只有当你按下键盘按键或者触摸/点击当前网页时,通知才被显示。如果你在网站上没有做任何操作,那么地址栏会显示 通知 权限图标,而不会显示通知本身。你可以很方便地允许或禁止某些通知,并且设置它们的显示方式。

Push_notificationsFx149PushNotifications

更新通知

Firefox 可以在网站未加载时也递送屏幕通知。使用 Push API(一个 W3C 标准),Firefox 会收到推送消息,并可以随时显示通知(如果用户允许)。网站也可以使用 Push 在后台更新数据,即使不向您显示通知。如果您已经授权某个网站发送通知,该网站也将能够使用 Push API。您可以按照以下说明选择是否为特定网站授予权限:

  1. 点击地址栏左侧的 挂锁图标 Fx89Padlock盾牌图标 Fx149UnifiedTrustIcon-Secure
  2. 在打开的 站点权限面板 顶部点击 Connection > 按钮。
  3. 在下一个面板中点击 更多网站信息更多信息,打开 页面信息窗口
    提示: 您也可以从菜单栏打开页面信息窗口,如果菜单栏已启用。点击 Tools 并从下拉菜单中选择 Page Info
  4. 选择 权限 标签页。
  5. 发送通知 下,选择一个通知选项:总是询问允许阻止。如果您的选项是灰色的,请取消勾选 使用默认值 复选框。

另外,你也可以:

  1. 在屏幕顶部的菜单栏里点击 Firefox 并选择 设置(或 首选项,在某些情况下)。点击菜单按钮 Fx89menuButton 并选择 设置
  2. 在左侧面板中选择 隐私与安全
  3. 滚动到 权限 部分。
  4. 点击 通知 右侧的 设置... 按钮。点击 通知
  5. 在任一网站的 状态 下拉菜单中选择 允许阻止
  6. 点击 保存更改 按钮。

Web推送是什么?

Web推送是一个能够让网站在未加载的情况下给你发送信息的可选特性。网站能够以此向你发送通知或者在后台更新数据。

比如,你可以在你最喜欢的购物网站上订阅通知,然后就能收到新的促销或报价的通知。 你可以在各式各样的网站上订阅通知,有关音乐会的网站可能会通知你最喜欢的乐队演出提醒,你允许了这个网站通知你。一周后你收到了一个提示信息告诉你乐队正在巡演。

你只会收到来自你授权的站点的信息。

它是如何工作的?

网站可以安装一个 Service Worker,这是一个只有有限功能的后台页面,能够绑定推送服务。网站接下来就能够通过 Mozilla 的Web推送功能向你的浏览器发送推送信息,浏览器就会处理这条信息并把它显示在屏幕上。

Firefox_150_web-push-notification_win10_pushfooFirefox_150_web-push-notification_win11_pushfooFirefox_150_web-push-notification_fedora_pushfooFirefox_150_web-push-notification_mac_pushfoo

点击提示信息就可以打开网站,如果网站已经加载了则会切换到该网站的标签页。

我与网站分享了哪些信息?

得到授权的网站可以在未被加载的时候向你发送信息。站点向你发送而不显示在屏幕上的信息条数被限制在一个最大值内。超过限值的信息条数的网站的推送功能将会无法使用,用户必须再次访问网站来重新订阅。Web推送不直接允许网站根据你的IP地址做出反应。

为了提供Web推送功能 Firefox 使用了哪些信息?

Firefox维持一条与推送服务的活动连接,以随时接收推送信息。这条连接将一直维持到 Firefox 退出。在我们的服务器上存储了一个你的浏览器的随机的身份标识 (User Agent IDentifier 或称 UAID) 以及每个你授权的站点的随机身份标识。您订阅任何一个通知,我们都需要您的 UAID 以允许我们的推送服务正确推送新消息通知到您的 Firefox 上。若您没有订阅任何推送信息, Firefox 就会为每个新连接更换一个新的 UAID。

在 Firefox 桌面版上,推送服务由 Mozilla 完成。Android 版的 Firefox 同时使用 Mozilla 的 Web 推送服务以及 GCM 云推送(Google Cloud Messaging ,中国大陆地区由于 GFW 的存在而几乎不可用)来递送通知。只有 Mozilla 的应用可以使用 WebPush 在 iOS 推送(根据 iOS 使用协议,第三方不能使用 WebPush 在 iOS 上推送通知)。

不管哪种情况,推送信息将按照IETF规范进行加密,并且只有你自己的 FireFox 能够对其进行解密。密文会一直存储在服务器上直到被递送或到期。

作为推送服务的一部分,我们会将您的 IP 地址保存 90 天。您的 IP 地址或 UAID 变更后,已存信息就会作废。我们 会保存您的以下信息:

  • 发送过推送信息的服务器 与/或 服务
  • 特定身份标识的活动时间

如何撤销特定 Web 推送权限?

在 Firefox 中 Web 推送总是选择性的。网站没有你的允许就不能向你推送信息。要令一个明确的网站停止向你推送信息:

  1. 在屏幕顶部的菜单栏里点击 Firefox 并选择 设置(或 首选项,在某些情况下)。点击菜单按钮 Fx89menuButton 并选择 设置
  2. 在左侧面板中选择 隐私与安全
  3. 滚动到 权限 部分。
  4. 点击 通知 右侧的 设置... 按钮。点击 通知
  5. 选择你不想再收到通知的站点。
  6. 点击 移除站点

要让所有的站点停止向你发送推送信息,将以上步骤最后一步改为点击移除全部站点,而不需要选择某个站点。这样网站将无法向你发送信息,并且以后向你发信息的时候将会重新请求权限。

要针对特定网站停止通知(需要重新载入网页):点击权限图标 Fx89PermissionsIcon 打开网站的 站点权限面板,找到 发送通知 权限,点击 已允许 旁边的 x 以移除权限。

如何给我的网站增加Web推送功能?

推送 API 规范说明了如何创建一个 Service Worker 以及发送推送信息。

如何让Firefox不再询问是否允许通知?

如果一个网站告诉 Firefox 它想显示通知,默认情况下,Firefox 会问你是否授权。你可以设置 Firefox 自动拒绝授权而无需询问。即使在这样设置之后,你还是可以为 你想要 的站点显示通知或推送的网站设置例外。

  1. 在屏幕顶部的菜单栏里点击 Firefox 并选择 设置(或 首选项,在某些情况下)。点击菜单按钮 Fx89menuButton 并选择 设置
  2. 在左侧面板中选择 隐私与安全
  3. 滚动到 权限 部分。
  4. 点击 通知 右侧的 设置... 按钮。点击 通知
  5. 勾选 禁止新的发送通知请求 复选框。
  6. 点击 保存更改 按钮。

此文章在这些用户的协助下写成:

Illustration of hands

志愿者

分享知识并培养专业技能。解答问题并改进我们的知识库。

详细了解