跳转到主要内容
当通知在 OneSignal 中显示为”已送达”时,意味着我们已成功将通知发送到 FCM(Google)/ APNs(Apple)/ WNS(Microsoft)服务器,然后这些服务器将通知分发给您的订阅者。以下是通知可能显示为”已送达”但在您的设备上不可见的原因。

设备设置

设备通知设置是Web推送通知无法显示的最常见原因。请在检查其他问题之前,先检查以下设置(包括勿扰模式、低电量等专注模式)。
请从下方标签页选择正确的操作系统。您应该看到 Windows、macOS、Android 和 iOS。
  1. 选择开始 > 设置 > 通知和操作 > 从应用和其他发送者获取通知
  2. 确保您的站点和浏览器也已启用。
Windows 11 通知设置:
  1. 选择开始 > 设置 > 系统 > 通知
  1. 打开通知
  2. 关闭勿扰模式(在测试时,禁用此选项后推送才会显示)
  3. 向下滚动到来自应用和其他发送者的通知
Windows 11 Settings showing the Notifications from apps and other senders list
  1. 确保您的浏览器已打开

网络问题 - 无互联网

设备必须在线才能接收推送通知。如果设备关闭、处于飞行模式、网络连接不稳定或无互联网连接,推送将不会显示,直到建立适当的连接。您可以使用生存时间 (TTL) 参数设置 FCM 和 APNs 等待连接的时间(默认为 3 天)。 如果设备连接的 WiFi 网络使用防火墙或 VPN,该网络可能会阻止与 Apple 或 Google 服务器的连接。请切换到蜂窝数据进行测试。 如果您通过防火墙管理网络流量,请将其配置为允许以下内容:
  • FCM(Chrome、Android): 出站 TCP 端口 5228、5229 和 5230。完整要求请参阅 FCM 文档
  • APNS(Safari、iOS): 出站 TCP 端口 5223 以及 TCP 端口 443 或 2197。完整要求请参阅 Apple 文档

浏览器设置

您的浏览器有其独立于操作系统设置的通知权限设置。即使操作系统为浏览器启用了通知,网站也可能在浏览器层面被屏蔽。
  • Chrome:访问 chrome://settings/content/notifications,确认您的网站列在”允许发送通知”下,而非”不允许发送通知”下。
  • Firefox:访问 about:preferences#privacy,滚动到权限 > 通知,点击设置检查您网站的状态。
  • Edge:访问 edge://settings/content/notifications,确认您的网站已被允许。
  • Safari:访问 Safari > 设置 > 网站 > 通知,确认您的网站设置为允许

浏览器已关闭

浏览器除非运行,否则不会显示推送通知。如果您在已发送通知的生存时间 (TTL) 到期之前打开浏览器,通知将弹出显示。

不支持的浏览器

用户必须在其桌面或移动设备上订阅通知才能接收通知,并且必须是支持推送通知的浏览器。请参阅网页推送常见问题了解支持的网页平台。

移动浏览器应用数据已满

如果您的移动浏览器应用已达到其数据限制或数据已满,您需要清除应用上的数据。 如果您的移动浏览器应用有许多未读推送通知和/或打开了许多选项卡,这可能会导致通知无法显示。

用户订阅

确保您的设备仍然订阅并被定向到推送通知。

订阅资格

检查消息受众,确认您的网页推送订阅已包含在内:
  • 细分:确认您的订阅符合所有受众筛选条件。
  • 直接发送:确认您定向的 ID 是正确的:
    • 该订阅仍订阅了推送。
    • 它有最近的最后会话日期——您可能正在向旧的或非活跃的订阅发送消息。
使用下方的调试步骤查找您的订阅 ID 并确认其已订阅且处于活跃状态。

网站代码库

注销服务工作线程或添加 PWA

检查您网站的代码库中是否有 .unregister() 方法。调用此方法将删除服务工作线程。有关此方法的详细信息,请参阅此指南 如果您有另一个服务工作线程(如用于您的 PWA),您需要遵循我们的集成多个服务工作线程的服务工作线程指南

调试网页推送通知

按照以下步骤获取干净的网页推送订阅并确认网页推送端到端正常工作。
1

在浏览器中打开您的网站

以下步骤以 Chrome 为例,但 Edge、Firefox 等也遵循相同模式。请勿使用隐身模式或访客浏览器模式,并关闭所有其他打开您网站的标签页。
Android将您的 Android 设备用 USB 线插入桌面电脑。
  • Chrome:在桌面上打开 chrome://inspect/#devices,然后按照以下步骤在移动设备上操作。
  • Firefox:参阅 about:debugging
iOS(仅限 Mac)iOS 网页推送仅在 Safari 中通过添加到主屏幕的网站支持。调试方法:
  1. 在您的 iPhone 或 iPad 上,前往设置 > Safari > 高级,启用 Web 检查器
  2. 用 USB 线将设备连接到 Mac。
  3. 在 Mac 上打开 Safari,然后前往开发 > [您的设备名称] > [您的网站页面]
  4. 在移动设备上按照以下步骤操作。
2

重置浏览器权限并清除网站数据

此操作将网站重置为模拟首次访问者状态。
  1. 点击 URL 旁边的网站信息图标
  2. 如果看到通知,选择重置权限(您希望看到”可以请求发送通知”)。
  3. 点击 Cookie 和网站数据
Chrome 网站设置面板,显示通知重置权限和 Cookie 选项
  1. 点击管理设备上的网站数据
Chrome Cookie 和网站数据面板,带有管理 Cookie 和网站数据按钮
  1. 点击以下旁边的垃圾桶图标
  • 您的网站 URL
  • onesignal.com
然后点击完成
Chrome Cookie 列表,带有删除网站数据的垃圾桶图标
  1. 关闭标签页,在新标签页中再次打开您的网站。
3

打开控制台并订阅推送通知

  1. 返回新标签页中的网站后,右键点击页面并选择检查以打开控制台。
  2. 按照您设置的步骤触发本地浏览器权限提示并允许通知。有关详细信息,请参阅网页权限提示
浏览器通知权限提示,询问是否允许或阻止通知
  1. 点击允许以订阅推送通知。
  2. 检查控制台中是否有任何错误。如果看到与 OneSignal 相关的红色内容,请参阅我们的网页 SDK 故障排除文档。
4

获取您的订阅 ID 并设为测试订阅

  1. 控制台中,运行以下代码以获取您的订阅 ID:
JavaScript
OneSignal.User.PushSubscription.id
JavaScript 控制台显示 OneSignal.User.PushSubscription.id 返回订阅 ID
  1. 复制 ID(不含引号)。
  2. 在 OneSignal 仪表板中,导航到受众 > 订阅,将订阅 ID(不含引号)粘贴到搜索栏,点击选项按钮,选择添加为测试订阅
OneSignal 仪表板显示订阅搜索栏并粘贴了订阅 ID
5

向自己发送测试消息

  1. 导航到消息 > 新建推送,在消息字段中撰写消息。
  2. 测试与预览下,选择您的测试订阅并向自己发送推送。
OneSignal 仪表板显示新建推送消息表单,已选择测试订阅
成功!您应该收到了您测试的推送。如果没有收到推送,请重新查看本指南并再试一次。
需要帮助?请通过我们的支持团队聊天或发送邮件至 support@onesignal.com请提供:
  • 您的 OneSignal App ID
  • 订阅 ID 或外部 ID
  • OneSignal 仪表板中您测试的消息的 URL
  • 带有 OneSignal 网页 SDK 代码的网站 URL
我们很乐意提供帮助!