
推送通知图标的最佳实践
- 尽可能使用带透明度的 PNG 图像。
- 保持图标简单且在非常小的尺寸下可识别。
- 避免使用可能变得难以辨认的文本或精细细节。
- 遵循特定于平台的规则,包括尺寸、颜色和透明度。
- 在跨平台和操作系统版本的真实设备上测试通知。
Web 通知图标
Web 推送通知显示在发送时提供的图标或在您的网站设置中定义为默认的图标。如果未提供图标,则使用默认的铃铛图标。- 支持的格式:PNG、JPG、GIF(非动画)
- 图标必须是正方形。推荐尺寸为
256x256像素。
不同的浏览器(Chrome、Edge、Safari、Firefox)可能会根据设备和操作系统以不同方式裁剪或缩放图标。建议使用正方形
256x256 图标以确保在所有浏览器上的一致显示。Android Web 推送徽章图标
在 Android 设备上,Web 推送通知可能会显示由 Web 应用清单badge 属性定义的较小徽章图标。徽章图标用于有限的 UI 上下文(例如 Android 状态栏),并且可能不会在所有 Android 设备上显示。如果未提供徽章图标,则默认为浏览器图标。
虽然徽章图标不受与 Android 应用小通知图标相同的严格仅 alpha 规则的约束,但它们仍在系统控制的 UI 中呈现。
最佳实践:
- 使用带透明背景的正方形 PNG
- 保持设计简单且高对比度
- 避免文本或精细细节
- 使用单色或最少颜色以获得最佳一致性
72×72 像素。可以接受更大的图像,并将根据需要缩小。
示例小徽章图标:https://i.imgur.com/9QFB20F.png

与 Android 应用小通知图标不同,Web 推送徽章图标可能在某些设备上保留颜色。但是,全彩或复杂图标可能会根据 Android 版本、浏览器和设备制造商而呈现不一致。
iOS 通知图标
iOS 通知始终使用您的应用图标。- 通知图标自动从您应用的图标资源派生
- 您无法为每条消息更改通知图标
- 更改图标需要更新您的应用图标并发布新的应用版本
iOS 上没有 APNs 有效负载字段允许您指定自定义通知图标。此行为由 iOS 强制执行,适用于标准推送通知、关键警报和实时活动。
通信通知
在 iOS 15 及更高版本上,Apple 支持通信通知。 正确实现后,通信风格的通知(例如消息或通话应用)可能会在受支持的系统视图中显示联系人或发送者图像而不是应用图标。通信通知仅限于特定用例,并需要明确采用 Apple 的通信通知 API。它们不适用于通用通知。
Android 通知图标
Android(包括 Amazon 和华为设备)支持小和大通知图标。 Android 还支持对话通知,允许您将图标更改为用户的个人资料图像。在 Android 8.0+(API 26+)上,通知外观受系统 UI、通知渠道和设备制造商自定义的严重影响。

小通知图标
小通知图标显示在状态栏和通知的左上角。如果未提供自定义小图标,OneSignal 将显示默认的铃铛图标。 Android 使用图标的 alpha 通道而不是其颜色数据来呈现小通知图标。系统在显示图标时应用自己的色调(或您配置的强调色)。 要求和最佳实践:- 在透明背景上使用单色剪影图标
- 设计图标时使形状由透明度定义,而不是颜色
- 避免渐变、阴影或多色艺术作品
- 保持设计简单且在非常小的尺寸下可识别
小图标强调色
您可以更改通知小图标周围显示的颜色。
res/values/strings.xml 文件中。
如果您想为深色模式设置不同的颜色,也可以将键添加到 res/values-night/strings.xml 中。
使用 HEX 值。使用 Android Asset Studio 配色方案获取帮助。
android_accent_color,或在”消息 > 新推送 > 平台设置 > Google Android 选项”下的”强调色”字段中输入值。
自定义非 alpha 通道小图标图像
某些设备制造商会按原样显示图像(忽略 alpha 通道规则)。如果您希望在所有设备上使用非 alpha 通道图像,可以根据 Android 的文档设置自定义通知布局。 我们强烈建议遵循 alpha 规则,因为图标在所有设备上可能看起来不一致。Google 这样设计是有原因的——图标太小,看不到任何有意义的细节,因此强制使用单一颜色有助于一眼就能识别图标。大通知图标
大图标显示在 Android 通知的右侧。- 推荐尺寸:256×256 像素
- 格式:PNG 或 JPG
- 如果未设置,Android 可能会重用小图标
如何添加 Android 默认图标
我们强烈建议为每个基于 Android 的应用(Google Play、Amazon、华为)配置默认通知图标。缺失或配置不正确的图标是通知呈现损坏的最常见原因。默认图标内置于您的应用中,而不是上传到 OneSignal 仪表板。您将它们添加到项目的资源目录(或使用 Expo 的插件配置),OneSignal SDK 会自动使用它们。
- 小通知图标(必需)
- 大通知图标(可选但推荐)
生成小通知图标
小通知图标显示在状态栏和通知标题中。要求:图标名称:
- 单色剪影图标
- 透明背景(需要 alpha 通道)
- 无颜色、渐变或阴影
生成符合要求的小图标的最快最安全的方法是使用 Android Asset Studio – 通知图标。
ic_stat_onesignal_default创建所需的小图标尺寸
必需:您必须包含小图标的所有密度变体。缺少任何尺寸都可能导致 Android 回退到系统默认图标。
| 图标名称 | 密度 (dp) | 尺寸 (px) |
|---|---|---|
ic_stat_onesignal_default | MDPI | 24x24 |
ic_stat_onesignal_default | HDPI | 36x36 |
ic_stat_onesignal_default | XHDPI | 48x48 |
ic_stat_onesignal_default | XXHDPI | 72x72 |
ic_stat_onesignal_default | XXXHDPI | 96x96 |
生成大通知图标(可选)
最佳实践:
- 正方形图像
- PNG 或 JPG
- 推荐透明背景
- 推荐尺寸:256×256 px
- 允许颜色
- 不需要仅 alpha
- 只需要一个尺寸
ic_onesignal_large_icon_default.png将图标放置在正确的项目路径中
每个图标必须放置在适合您框架的正确资源目录中。确保以下路径存在;创建您缺少的任何文件夹。必需:每个图像必须存在于以下路径中:
- Android Native
- Unity
- Cordova/Ionic
- React Native / Expo
- .NET Maui
- Flutter
res/drawable-mdpi/(24x24)res/drawable-hdpi/(36x36)res/drawable-xhdpi/(48x48)res/drawable-xxhdpi/(72x72)res/drawable-xxxhdpi/(96x96)res/drawable-xxxhdpi/(256x256) (Large Icon)

您的 Android 应用现在已正确配置默认通知图标。
使用非默认图标发送通知
从 OneSignal 仪表板或 REST API 发送推送通知时,您可以使用自定义图标覆盖 Android、Amazon、华为和 Web 推送通知的默认图标。您无法覆盖 iOS 通知的图标。REST API 参数
Android、Amazon 和华为 REST API 参数:Amazon:
adm_small_icon Huawei: huawei_small_icon对于小图标,图像必须存在于与默认小图标相同的项目路径中。它不能使用远程 URL。有关添加自定义图标的位置的详细信息,请参阅如何添加 Android 默认图标。在 REST API 参数中设置图标名称时不包含文件扩展名。示例: "small_icon": "my_custom_icon_name_without_extension"Amazon:
adm_large_icon Huawei: huawei_large_icon对于大图标,图像可以存在于与默认大图标相同的项目路径中,也可以作为远程 URL。有关添加自定义图标的位置的详细信息,请参阅如何添加 Android 默认图标。在 REST API 参数中设置图标名称时不包含文件扩展名。示例: "large_icon": "my_custom_icon_name_without_extension"Firefox:
firefox_icon图像资源的 URL。必须是图像资源的直接 URL。示例: "chrome_web_icon": "https://example.com/my_custom_icon.png"图像资源的 URL。必须是图像资源的直接 URL。示例:
"chrome_web_badge": "https://i.imgur.com/9QFB20F.png"仪表板
在 OneSignal 仪表板中,使用消息 > 推送 > 新推送表单或模板,导航到特定于平台的选项。 对于 Android、Amazon 和华为,如果文件存在于与默认图标相同的项目路径中,请设置图标名称时不包含文件扩展名。对于大通知图标,您还可以提供将显示图标的直接 URL。
常见问题
为什么我的 Android 小图标显示为白色或灰色方块?
图像没有正确的透明度。Android 仅使用 alpha 通道渲染小通知图标——任何具有实心背景的完全不透明像素都会显示为填充方块。请使用 Android Asset Studio 将图标重新生成为透明背景上的单色剪影。为什么显示 OneSignal 铃铛图标而不是我的自定义图标?
小图标的一个或多个所需密度变体缺失或放置在错误的 drawable 目录中。您必须包含所有五个尺寸(MDPI 到 XXXHDPI),并使用确切的文件名ic_stat_onesignal_default。有关正确路径,请参阅如何添加 Android 默认图标。
我可以为每条消息更改 iOS 通知图标吗?
不可以。iOS 始终将您的应用图标用于推送通知。没有 APNs 有效负载字段可以覆盖它。更改图标需要更新您的应用图标资源并发布新的应用版本。我的 Web 推送图标应该是什么尺寸?
使用256x256 像素的正方形 PNG 图像。不同的浏览器和操作系统可能会裁剪或缩放图标,但 256x256 在 Chrome、Firefox、Edge 和 Safari 之间提供最佳的一致性。
我可以为 Android 小图标使用 URL 吗?
不可以。Android 小图标必须是与您的应用捆绑的本地资源文件。只有大图标支持远程 URL。如何在 Expo 中添加通知图标?
使用onesignal-expo-plugin,您提供单个源 PNG(小图标为 96x96,大图标为 256x256),并在 app.json 或 app.config.js 的 smallIcons 和 largeIcons 数组下引用它。插件会自动生成所有密度变体,并在构建时将其放置在正确的 android/ 目录中。您无需手动创建 drawable 文件夹。有关示例配置,请参阅”将图标放置在正确的项目路径中”下的 Expo 选项卡。
我需要将默认图标上传到 OneSignal 仪表板吗?
不需要。默认通知图标内置于您的应用二进制文件中,而不是上传到 OneSignal。您将它们添加到项目的资源目录(或 Expo 的插件配置),OneSignal SDK 会自动使用它们。OneSignal 仪表板仅允许您针对 Android 和 Web 推送按消息覆盖图标。相关页面
图像和富媒体
将大图像、GIF 和视频附加到推送通知。
Android 通知类别
创建和管理 Android 通知渠道,以自定义声音、振动和重要性。
Web 推送设置
为 Web 推送通知配置您的网站,包括默认图标设置。
创建消息 API
使用 REST API 发送带有自定义图标的推送通知。