> ## 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 SDK 会尝试从 [OSNotification Payload](./osnotification-payload) 获取外部图片 URL 并在通知中显示它。此过程期间应用是否关闭并不重要。SDK 会等待图片下载，但如果下载时间超过约 25 秒（由 Apple 强制执行），则通知将在不显示图片的情况下显示。如果下载失败，OneSignal 的 SDK 不会重试获取图片。

本指南将介绍图片未显示的最常见原因以及如何解决它们。有关图片规格的详细信息，请参阅[图片和富媒体](./rich-media)。

## 图片配置

首先检查这些项目以确保图片配置正确。

### 图片大小

图片大小必须小于 5MB。图片越小，下载速度越快。更多详细信息请参阅[图片和富媒体](./rich-media)。

### 图片 URL

* 图片 URL 需要直接链接到图片资源。不能有重定向，也不能链接到显示图片但不是实际图片资源的页面。
  * 通常这意味着图片 URL 以 `https://` 开头，并以文件扩展名（如 `.png` 或 `.jpg`）结尾。

示例：

* 这不起作用：`https://pixabay.com/en/architecture-travel-sky-building-3095716/`
* 但如果您右键单击图片并在新标签页中打开，这将起作用：`https://cdn.pixabay.com/photo/2018/01/21/01/46/architecture-3095716_960_720.jpg`

### 图片托管

如果您将图片上传到 OneSignal，它将在我们的服务器上托管约 33 天。如果您需要更长时间使用图片，可以使用模板或将图片存储在自己的服务器上，并直接在模板中引用资源 URL。

如果您自行托管图片，需要确保服务器能够处理下载量。每个接收通知的设备都需要下载图片。设备下载所有通知资源（包括图片）的时间约为 30 秒。如果时间更长，该设备上将不会显示图片。

***

## 设备配置

检查设备上的互联网连接。不稳定的网络连接可能导致图片无法显示。

* 在不同的 WiFi 网络上测试。
* 在不同的蜂窝网络上测试。
* 在不同的设备上测试。

***

## 平台配置

根据未接收图片的平台检查以下部分。

### Web 推送图片

* **只有 Chrome 在 Windows 和 Android 上支持推送通知中的大图片**。
  * macOS 版 Chrome 不支持大图片。
* Firefox、Safari 和 Edge 不支持大图片。
* 在 Android 上，当您收到通知时，需要点击通知以展开它并查看图片。

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

### Android 推送图片

当您在 Android 通知中心收到通知时，需要展开通知才能看到图片。

Android 不需要任何额外配置即可在推送通知中接收图片。

### iOS 推送图片

iOS 通知需要正确设置通知服务扩展。我们针对您使用的 SDK 版本的[移动 SDK 设置](./mobile-sdk-setup)指南中介绍了通知服务扩展设置。

如果您的图片 URL 是 HTTP，并且您坚持使用 HTTP URL 自行托管它们，则需要在 Xcode .plist 中将 `NSAppTransportSecurity` 设置为 `NSAllowsArbitraryLoads`。

<Warning>
  如果在将应用发布到 App Store 时启用了 `NSAllowsArbitraryLoads`，Apple 可能会拒绝您的应用，因为这可能会造成安全漏洞。有关更多信息，请阅读 Apple 的[安全概述](https://www.apple.com/business/resources/docs/iOS_Security_Overview.pdf)。
</Warning>

***

## 技术故障排除

如果您检查了上述项目但图片仍无法显示，请使用我们 SDK 的 [`setLogLevel` 方法](./mobile-sdk-reference#setloglevel)并启用 `VERBOSE` 日志记录以检查与图片下载相关的特定错误。

有关生成日志的详细指南，请参阅我们的[捕获调试日志](./capturing-a-debug-log)指南。

常见错误包括：

* `Could not download image!`
* `Encountered an error while attempting to download file with URL:`
* `OneSignal encountered an exception while downloading file`

### iOS 通知服务扩展故障排除

如果图片在 iOS 上无法显示，请遵循我们的 [iOS 通知服务扩展故障排除](./service-extensions#troubleshooting-the-ios-notification-service-extension)指南。

本指南将帮助检查您的通知服务扩展设置并识别任何问题。

***
