使用推送通知

编辑页面

了解与 Expo 和 React Native 应用兼容的推送通知服务。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

Expo 应用可以与任何通知服务或 Android 和 iOS 操作系统提供的任何通知功能协同工作。即使某个功能尚不存在相应的包,也可以编写原生代码通过 Expo Modules API 访问它,并且可以使用 config plugins 自动化原生项目配置。以下选项提供了专为 Expo 集成而设计的方案,其中在必要时包含 config plugins,用于在你的应用中实现推送通知:

expo-notifications 库经过设计和测试,可与 Expo 的推送通知服务以及直接从 FCM 和 APNS 发送的通知配合使用。某些高级功能可能与第三方提供商不兼容,因为它们通常拥有针对其服务优化的原生和 React Native SDK。

Expo 推送通知

Expo Notifications 提供了一个统一的 API,用于在 Android 和 iOS 之间处理推送通知。它可与您的 Expo 账户无缝集成,并且可免费使用。

主要功能

注意事项和限制

  • 用于向通知添加额外内容(例如图片)的 iOS Notification Service Extension 并未正式包含在内,但你可以通过带有自定义原生代码和配置的 config plugin 添加它(示例)。
  • 每个项目的速率限制为每秒 600 条通知。

有关实现细节,请参阅以下指南:

Expo push notifications overview

了解更多关于 Expo 推送通知的信息。

Expo Notifications server-side SDK options

了解更多关于使用服务器发送推送通知的信息。

OneSignal

OneSignal 是一个客户互动平台,为 web 和移动应用提供推送通知、应用内消息、短信和电子邮件服务。OneSignal 支持通知中的富媒体和互动分析。它包含一个 Expo config plugin,可直接集成到你的 Expo 项目中。

OneSignal Expo SDK Setup

按照本指南逐步完成如何在你的 Expo 项目中集成 OneSignal 的设置。

Braze

Braze 是一个客户互动平台,通过推送通知、应用内消息、电子邮件、短信和 web 提供个性化的跨渠道消息传递。Braze 支持富通知内容、推送通知活动,以及在 Android 上失败投递后重新发送通知的支持。它提供了一个 React Native SDK 和一个 config plugin。更多详情请查看 Expo 示例应用

Braze Expo Setup

按照本指南逐步完成如何在你的 Expo 项目中集成 Braze 的设置。

Customer.io

Customer.io 是一个客户互动平台,允许你利用推送通知、应用内消息、电子邮件、短信功能等设计强大的自动化工作流。其可视化工作流构建器使你能够跨多个渠道自动化复杂的数据驱动型活动。Customer.io 支持设备端指标收集,可用于自定义针对用户行为和偏好的推送通知。Customer.io 提供了一个 Expo plugin,可直接与你的 Expo 项目集成,并提供了将 Customer.io 推送通知与其他提供商一起使用的文档。

Customer.io Expo Quick Start Guide

按照本指南逐步完成如何在你的 Expo 项目中集成 Customer.io 的设置。

CleverTap

CleverTap 是一个一体化客户互动平台,可帮助你通过推送通知、应用内消息、电子邮件等渠道提供个性化、实时、全渠道消息。它提供高级分群、分析和活动自动化 — 专为随着你的业务规模扩展而构建。CleverTap React Native SDKExpo config plugin 使其能够轻松集成到你的 Expo 项目中。config plugin 会在 prebuild 过程中处理所有原生模块设置,使你无需手动修改原生代码即可通过应用配置来配置 CleverTap。更多信息请查看 CleverTap Example Plugin

CleverTap Expo Plugin Docs

按照本指南在你的 Expo 或 React Native 项目中设置 CleverTap。

直接通过 FCM 和 APNs 发送通知

你可以选择直接从后端发送到平台推送 API。在这种情况下,你仍然可以使用 expo-notifications 获取原生推送令牌,并针对每个平台分别配置通知。

尽管客户端代码仍可通过 expo-notifications 保持跨平台,你仍需要实现服务端逻辑,以分别与 FCMAPNs API 交互。

React Native Firebase messaging

React Native Firebase 提供了一个消息模块,使你可以将 Firebase Cloud Messaging (FCM) 作为 Android 和 iOS 的统一推送通知服务。虽然 FCM 通常与 Android 通知相关联,但它也支持通过 Apple Push Notification service (APNs) 在幕后路由消息来支持 iOS。

这种方式不同于仅将 FCM 用于 Android 通知。相反,Firebase 的跨平台 SDK 通过单一服务处理两个平台的通知。

尽管 FCM 处理两个平台的通知,iOS 通知仍然会通过 APNs。Firebase 会自动管理这种路由。更多信息请参阅 React Native Firebase messaging documentation

提示和重要注意事项

  • 避免混合客户端实现:不同的通知服务可能存在冲突的客户端实现。请使用一致的方法以防止潜在问题。
  • Web 通知:Expo 通知不支持 web 通知。不过,某些第三方解决方案可能提供此功能。选择服务时请考虑你的应用需求。
  • 令牌管理:在你的数据库中同时跟踪 Expo 推送令牌和原生设备令牌。这为将来的集成提供了灵活性,尤其是对于直接通过 FCM 或 APNs 发送通知的营销工具。