精选文章

Flutter 推送通知

2024-03-31 · 组件

推送通常使用 firebase_messaging。下面给出初始化、权限与回调处理的完整流程。

0. 依赖

dependencies:
  firebase_messaging: ^14.7.10

1. 初始化

Future<void> initPush() async {
  FirebaseMessaging messaging = FirebaseMessaging.instance;
  await messaging.requestPermission();
  final token = await messaging.getToken();
  Log.d('push', 'token=$token');
}

2. 前台消息

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  // 前台处理
});

3. 后台消息

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  // 后台处理
}

FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

4. 点击通知打开

FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
  // 跳转页面
});

5. 常见坑点

  • 未配置 Firebase:初始化失败
  • 权限未申请:iOS 无法接收
  • 后台 handler 未注册:后台消息丢失

6. 实践清单

  • 初始化并获取 token
  • 前台/后台回调处理
  • 点击通知跳转

JJ

作者简介

专注于内容创作、产品策略与设计实践。欢迎交流合作。

上一篇 下一篇