> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 网页推送：通知未显示

> 排查在 OneSignal 中显示为 已送达 但未出现在订阅者设备上的网页推送通知。

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

## 设备设置

设备通知设置是Web推送通知无法显示的**最常见原因**。请在检查其他问题之前，先检查以下设置（包括勿扰模式、低电量等专注模式）。

<Warning>
  请从下方标签页选择正确的操作系统。您应该看到 Windows、macOS、Android 和 iOS。
</Warning>

<Tabs>
  <Tab title="Windows 系统">
    <Accordion title="Windows 10 通知设置">
      1. 选择**开始 > 设置 > 通知和操作 > 从应用和其他发送者获取通知**

      2. **确保您的站点和浏览器也已启用。**

      <Frame caption="Windows 10 通知设置">
        <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/cb85585-f0eb72bb-313f-b80e-480c-46321fdb5ebd.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=21acf8bf7acb457822fe6f442a0f2fad" width="558" height="317" data-path="images/docs/cb85585-f0eb72bb-313f-b80e-480c-46321fdb5ebd.png" />
      </Frame>
    </Accordion>

    **Windows 11 通知设置:**

    1. 选择**开始 > 设置 > 系统 > 通知**

    <Frame caption="Windows 11 通知设置">
      <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/9e6b656-Screenshot_2023-07-13_at_4.03.13_PM.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=8e4d1b4617fc098bd0d0060defb23851" width="2046" height="1598" data-path="images/docs/9e6b656-Screenshot_2023-07-13_at_4.03.13_PM.png" />
    </Frame>

    2. 打开**通知**

    3. 关闭**勿扰模式**（在测试时，禁用此选项后推送才会显示）

    4. 向下滚动到**来自应用和其他发送者的通知**

    <Frame caption="Windows 11 来自应用和其他发送者的通知">
      <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/ed955fa-Screenshot_2023-07-13_at_4.04.16_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=e6943675129e73eabe9286c976163091" alt="Windows 11 Settings showing the Notifications from apps and other senders list" width="2046" height="1598" data-path="images/docs/ed955fa-Screenshot_2023-07-13_at_4.04.16_PM.png" />
    </Frame>

    5. 确保您的浏览器已**打开**。

    <Frame caption="Windows 11 通知设置浏览器列表">
      <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/258c7ee-Screenshot_2023-07-13_at_4.11.32_PM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=48f5b6b47512f24ef6589a404d6fb413" width="2046" height="1598" data-path="images/docs/258c7ee-Screenshot_2023-07-13_at_4.11.32_PM.png" />
    </Frame>
  </Tab>

  <Tab title="macOS 系统">
    1. 导航至**系统设置 > 通知**
    2. 确保在通知中心中已启用**通知**。

    <Info>
      您可能需要选择**在镜像或共享显示器时允许通知**。
    </Info>

    <Frame caption="macOS 通知中心设置">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-notification-center-settings.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=3978f6da8fd11a30efae0da02a5c8a5a" width="1670" height="1938" data-path="images/push/macos-notification-center-settings.png" />
    </Frame>

    3. 向下滚动至应用通知列表，确保您的浏览器已打开。

    <Warning>
      某些浏览器（如 Chrome 和 Edge）会显示 2 个不同的应用条目。

      1. 标准网页推送通知
      2. 内部提醒（例如 Google 日历）

      请确保两者都已启用。
    </Warning>

    <Frame caption="macOS 应用通知列表 - 示例显示 Chrome 和 Edge 有 2 个条目，两者都需要启用。">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-application-notifications-list.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=adebcf8e4a20d72fccf92459dc94bda1" width="1670" height="1938" data-path="images/push/macos-application-notifications-list.png" />
    </Frame>

    4. 选择应用并打开设置。选择您希望如何显示通知。

    <Frame caption="macOS 应用通知设置">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-application-notifications-settings.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=45cc68b248d15f60c6b344eca3114447" width="1670" height="1938" data-path="images/push/macos-application-notifications-settings.png" />
    </Frame>

    <Warning>
      某些旧版本的 Safari 可能会在应用通知列表中显示网站。在这种情况下，请确保检查网站是否已打开。
    </Warning>

    5. 导航至**系统设置 > 专注模式**，确保测试时没有启用专注模式。

    <Frame caption="macOS 专注模式设置">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-focus-mode-settings.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=7924eb3a1907400fee662fcf249081ef" width="1670" height="1392" data-path="images/push/macos-focus-mode-settings.png" />
    </Frame>
  </Tab>

  <Tab title="Android 系统">
    1. 导航至**设置 > 通知 > 您选择的浏览器**。
    2. 确保已勾选\*\*"显示通知"\*\*和您的网站。

    <Frame caption="Android 通知设置">
      <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b75b427-Screenshot_20210816-174706_Settings.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=f2de2e15cdf5b36f423b707903ba82ae" width="800" height="873" data-path="images/docs/b75b427-Screenshot_20210816-174706_Settings.png" />
    </Frame>

    <Note>
      Android 使用按应用的通知渠道。如果浏览器的通知渠道设置为静音或关闭，即使顶级开关已打开，推送通知也不会显示。在设置中，点按浏览器条目并检查每个通知渠道是否已启用并设置为可见提醒样式。
    </Note>
  </Tab>

  <Tab title="iOS 系统">
    <Warning>
      iOS 要求您先将网站添加到主屏幕，订阅者才能在 iPhone 和 iPad 上接收推送通知。在排除故障之前，请先完成 [iOS Web 推送设置](/docs/cn/web-push-for-ios)。
    </Warning>

    1. 点击浏览器的**分享**按钮，选择**添加到主屏幕**。
    2. 从主屏幕打开您的网站，并在权限提示出现时允许通知。
    3. 前往设备的**设置 > 通知 > 您的网站**，确保**允许通知**已开启。
  </Tab>
</Tabs>

### 网络问题 - 无互联网

设备必须在线才能接收推送通知。如果设备关闭、处于飞行模式、网络连接不稳定或无互联网连接，推送将不会显示，直到建立适当的连接。您可以使用生存时间 (TTL) 参数设置 FCM 和 APNs 等待连接的时间（默认为 3 天）。

如果设备连接的 WiFi 网络使用防火墙或 VPN，该网络可能会阻止与 Apple 或 Google 服务器的连接。请切换到蜂窝数据进行测试。

如果您通过防火墙管理网络流量，请将其配置为允许以下内容：

* **FCM（Chrome、Android）：** 出站 TCP 端口 5228、5229 和 5230。完整要求请参阅 [FCM 文档](https://firebase.google.com/docs/cloud-messaging/concept-options)。
* **APNS（Safari、iOS）：** 出站 TCP 端口 5223 以及 TCP 端口 443 或 2197。完整要求请参阅 [Apple 文档](https://support.apple.com/en-us/HT203609)。

***

## 浏览器设置

您的浏览器有其独立于操作系统设置的通知权限设置。即使操作系统为浏览器启用了通知，网站也可能在浏览器层面被屏蔽。

* **Chrome**：访问 `chrome://settings/content/notifications`，确认您的网站列在"允许发送通知"下，而非"不允许发送通知"下。
* **Firefox**：访问 `about:preferences#privacy`，滚动到**权限 > 通知**，点击**设置**检查您网站的状态。
* **Edge**：访问 `edge://settings/content/notifications`，确认您的网站已被允许。
* **Safari**：访问 **Safari > 设置 > 网站 > 通知**，确认您的网站设置为**允许**。

### 浏览器已关闭

浏览器除非运行，否则不会显示推送通知。如果您在已发送通知的[生存时间 (TTL)](./push#time-to-live) 到期之前打开浏览器，通知将弹出显示。

### 不支持的浏览器

用户必须在其桌面或移动设备上订阅通知才能接收通知，并且必须是支持推送通知的浏览器。请参阅[网页推送常见问题](./web-push-setup-faq)了解支持的网页平台。

### 移动浏览器应用数据已满

如果您的移动浏览器应用已达到其数据限制或数据已满，您需要清除应用上的数据。

如果您的移动浏览器应用有许多未读推送通知和/或打开了许多选项卡，这可能会导致通知无法显示。

***

## 用户订阅

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

### 订阅资格

检查消息受众，确认您的网页推送订阅已包含在内：

* **[细分](./segmentation)**：确认您的订阅符合所有受众筛选条件。
* **直接发送**：确认您定向的 ID 是正确的：
  * 该订阅仍订阅了推送。
  * 它有最近的最后会话日期——您可能正在向旧的或非活跃的订阅发送消息。

使用下方的[调试步骤](#调试网页推送通知)查找您的订阅 ID 并确认其已订阅且处于活跃状态。

***

## 网站代码库

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

检查您网站的代码库中是否有 `.unregister()` 方法。调用此方法将删除服务工作线程。有关此方法的详细信息，请参阅[此指南](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/unregister)。

如果您有另一个服务工作线程（如用于您的 PWA），您需要遵循我们的[集成多个服务工作线程的服务工作线程指南](./onesignal-service-worker)。

***

## 调试网页推送通知

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

<Steps>
  <Step title="在浏览器中打开您的网站">
    以下步骤以 Chrome 为例，但 Edge、Firefox 等也遵循相同模式。请勿使用隐身模式或访客浏览器模式，并关闭所有其他打开您网站的标签页。

    <Accordion title="移动设备调试">
      **Android**

      将您的 Android 设备用 USB 线插入桌面电脑。

      * **Chrome**：在桌面上打开 `chrome://inspect/#devices`，然后按照以下步骤在移动设备上操作。
      * **Firefox**：参阅 [about:debugging](https://developer.mozilla.org/en-US/docs/Tools/about:debugging)。

      **iOS**（仅限 Mac）

      iOS 网页推送仅在 Safari 中通过添加到主屏幕的网站支持。调试方法：

      1. 在您的 iPhone 或 iPad 上，前往**设置 > Safari > 高级**，启用 **Web 检查器**。
      2. 用 USB 线将设备连接到 Mac。
      3. 在 Mac 上打开 Safari，然后前往**开发 > \[您的设备名称] > \[您的网站页面]**。
      4. 在移动设备上按照以下步骤操作。
    </Accordion>
  </Step>

  <Step title="重置浏览器权限并清除网站数据">
    此操作将网站重置为模拟首次访问者状态。

    1. 点击 URL 旁边的**网站信息图标**。
    2. 如果看到**通知**，选择**重置权限**（您希望看到"可以请求发送通知"）。
    3. 点击 **Cookie 和网站数据**。

    <Frame caption="Chrome 网站设置面板，显示通知重置权限和 Cookie 选项">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/chrome-site-settings-panel-notifications-reset-permission-and-cookies-options.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=1705ca95848068edbea491ddf21dcd90" alt="Chrome 网站设置面板，显示通知重置权限和 Cookie 选项" width="2064" height="1508" data-path="images/web-push/chrome-site-settings-panel-notifications-reset-permission-and-cookies-options.png" />
    </Frame>

    4. 点击**管理设备上的网站数据**。

    <Frame caption="Chrome Cookie 和网站数据面板，带有管理 Cookie 和网站数据按钮">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/chrome-cookies-and-site-data-panel-with-manage-cookies-and-site-data-button.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=d62e11591cc0ff5a755af151032f1a3b" alt="Chrome Cookie 和网站数据面板，带有管理 Cookie 和网站数据按钮" width="2064" height="1508" data-path="images/web-push/chrome-cookies-and-site-data-panel-with-manage-cookies-and-site-data-button.png" />
    </Frame>

    5. 点击以下旁边的**垃圾桶图标**：

    * 您的网站 URL
    * `onesignal.com`

    然后点击**完成**。

    <Frame caption="Chrome Cookie 列表，带有删除网站数据的垃圾桶图标">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/chrome-cookies-list-with-trash-icon-to-remove-site-data.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=10749177b3db6b1f9b33ebe813cba4a9" alt="Chrome Cookie 列表，带有删除网站数据的垃圾桶图标" width="2064" height="1508" data-path="images/web-push/chrome-cookies-list-with-trash-icon-to-remove-site-data.png" />
    </Frame>

    6. 关闭标签页，在新标签页中再次打开您的网站。
  </Step>

  <Step title="打开控制台并订阅推送通知">
    1. 返回新标签页中的网站后，右键点击页面并选择**检查**以打开控制台。
    2. 按照您设置的步骤触发本地浏览器权限提示并允许通知。有关详细信息，请参阅[网页权限提示](./permission-requests)。

    <Frame caption="浏览器通知权限提示，询问是否允许或阻止通知">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/browser-notification-permission-prompt-asking-to-allow-or-block-notifications.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=9fb78665792856e16dfc8a9e44cb8529" alt="浏览器通知权限提示，询问是否允许或阻止通知" width="2064" height="1508" data-path="images/web-push/browser-notification-permission-prompt-asking-to-allow-or-block-notifications.png" />
    </Frame>

    3. 点击**允许**以订阅推送通知。
    4. 检查**控制台**中是否有任何错误。如果看到与 OneSignal 相关的红色内容，请参阅我们的[网页 SDK 故障排除](./troubleshooting-web-push)文档。
  </Step>

  <Step title="获取您的订阅 ID 并设为测试订阅">
    1. 在**控制台**中，运行以下代码以获取您的订阅 ID：

    ```javascript JavaScript theme={null}
    OneSignal.User.PushSubscription.id
    ```

    <Frame caption="JavaScript 控制台显示 OneSignal.User.PushSubscription.id 返回订阅 ID">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/javascript-console-showing-onesignal-user-pushsubscription-id-returning-a-subscription-id.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=cd132e56f4f00f3161233766eecc4a85" alt="JavaScript 控制台显示 OneSignal.User.PushSubscription.id 返回订阅 ID" width="2064" height="1508" data-path="images/web-push/javascript-console-showing-onesignal-user-pushsubscription-id-returning-a-subscription-id.png" />
    </Frame>

    2. 复制 ID（不含引号）。

    3. 在 OneSignal 仪表板中，导航到**受众 > 订阅**，将订阅 ID（不含引号）粘贴到搜索栏，点击**选项**按钮，选择**添加为测试订阅**。

    <Frame caption="OneSignal 仪表板显示订阅搜索栏并粘贴了订阅 ID">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/onesignal-dashboard-showing-subscriptions-search-bar-with-subscription-id-pasted.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=dfa40b9702699d39b660e1cd2fc9abe5" alt="OneSignal 仪表板显示订阅搜索栏并粘贴了订阅 ID" width="2064" height="1508" data-path="images/web-push/onesignal-dashboard-showing-subscriptions-search-bar-with-subscription-id-pasted.png" />
    </Frame>
  </Step>

  <Step title="向自己发送测试消息">
    1. 导航到**消息 > 新建推送**，在**消息**字段中撰写消息。
    2. 在**测试与预览**下，选择您的测试订阅并向自己发送推送。

    <Frame caption="OneSignal 仪表板显示新建推送消息表单，已选择测试订阅">
      <img src="https://mintcdn.com/onesignal/dzd4t2XokDP_R8GG/images/web-push/onesignal-dashboard-showing-new-push-message-form-with-test-subscription-selected.png?fit=max&auto=format&n=dzd4t2XokDP_R8GG&q=85&s=993d667a2f90cd0a77e40a09359b670e" alt="OneSignal 仪表板显示新建推送消息表单，已选择测试订阅" width="2064" height="1508" data-path="images/web-push/onesignal-dashboard-showing-new-push-message-form-with-test-subscription-selected.png" />
    </Frame>

    <Check>
      成功！您应该收到了您测试的推送。

      如果没有收到推送，请重新查看本指南并再试一次。
    </Check>
  </Step>
</Steps>

<Info>
  需要帮助？

  请通过我们的支持团队聊天或发送邮件至 `support@onesignal.com`

  请提供：

  * 您的 OneSignal App ID
  * 订阅 ID 或外部 ID
  * OneSignal 仪表板中您测试的消息的 URL
  * 带有 OneSignal 网页 SDK 代码的网站 URL

  我们很乐意提供帮助！
</Info>
