用途
该技能面向需要在 iOS 和 Android 应用中实现推送通知系统的开发者,目标是使用 Firebase Cloud Messaging(FCM)与各平台原生推送服务,搭建完整的推送通知能力。
主要能力
- 使用 Firebase Cloud Messaging 与原生平台服务实现 iOS 和 Android 推送通知。
- 覆盖 Apple Push Notification service(APNs)相关设置。
- 处理通知的接收与展示。
- 支持从通知深链(deep linking)跳转到指定页面。
- 支持处理静默/后台通知。
- 支持通知分析(analytics)追踪。
- 提供后端集成相关内容。
使用方式
资料给出一个基于 React Native 的最小可运行示例,主要流程包括:
- 引入
@react-native-firebase/messaging与react-native的Platform。 - 在 iOS 平台请求通知权限,并判断权限状态是否为
messaging.AuthorizationStatus.AUTHORIZED。 - 通过
messaging().getToken()获取 FCM Token,并调用saveTokenToBackend(token)保存到后端。 - 通过
messaging().onTokenRefresh(...)监听令牌刷新并重新保存。 - 通过
messaging().onMessage(...)监听前台消息,并调用showLocalNotification(remoteMessage)展示本地通知。
示例代码(保留原文):
import messaging from "@react-native-firebase/messaging";
import { Platform } from "react-native";
export async function initializeFirebase() {
try {
if (Platform.OS === "ios") {
const permission = await messaging().requestPermission();
if (permission === messaging.AuthorizationStatus.AUTHORIZED) {
console.log("iOS notification permission granted");
}
}
const token = await messaging().getToken();
console.log("FCM Token:", token);
await saveTokenToBackend(token);
messaging().onTokenRefresh(async (newToken) => {
await saveTokenToBackend(newToken);
});
messaging().onMessage(async (remoteMessage) => {
console.log("Notification received:", remoteMessage);
showLocalNotification(remoteMessage);
});
// ... (see reference guides for full implementation)
资料还提到在 references/ 目录中提供更详细的实现指南,包括:Firebase Cloud Messaging Setup、iOS Native Setup with Swift、Android Setup with Kotlin、Flutter Implementation。
适用场景
- 向用户发送实时通知。
- 实现用户互动/参与功能。
- 从通知深链到特定页面。
- 处理静默/后台通知。
- 追踪通知分析数据。
最佳实践(资料原文)
建议(DO):
- 发送通知前先请求权限。
- 实现令牌刷新处理。
- 按优先级使用不同的通知渠道。
- 定期校验令牌。
- 追踪通知送达情况。
- 实现深链。
- 处理应用所有状态下的通知。
- 使用静默通知进行数据同步。
- 在后端安全存储令牌。
- 提供用户通知偏好设置。
- 在真机上测试。
避免(DON'T):
- 发送过多通知。
- 未经许可发送。
- 不安全地存储令牌。
- 忽略通知失败。
- 在负载中发送敏感数据。
- 将通知用于垃圾信息。
- 忘记处理后台通知。
- 在处理程序中执行阻塞调用。
- 发送重复通知。
- 忽略用户偏好。
限制
资料未提供具体的收费、价格、平台支持范围、性能效果或完整安装命令等信息,暂未提供。