Flutter Firebase消息推送插件patapata_firebase_messaging的使用

Flutter Firebase消息推送插件patapata_firebase_messaging的使用

Patapata - Firebase Cloud Messaging

为您的Patapata应用添加对Firebase Cloud Messaging的支持。


关于 #

此软件包是为Patapata设计的插件,用于为您的Patapata应用添加对Firebase Cloud Messaging的支持。它将自动处理来自Firebase的推送通知,并将其发送到Patapata的通知系统。

此插件需要安装并激活patapata_firebase_core插件。

开始使用 #

步骤1: 将依赖项添加到pubspec.yaml文件

flutter pub add patapata_firebase_messaging

步骤2: 导入包

import 'package:patapata_firebase_messaging/patapata_firebase_messaging.dart';

步骤3: 激活插件

void main() {
  App(
    environment: const Environment(),
    plugins: [
      FirebaseCorePlugin(),
      FirebaseMessagingPlugin(),
    ],
  )
  .run();
}

更多关于Flutter Firebase消息推送插件patapata_firebase_messaging的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Firebase消息推送插件patapata_firebase_messaging的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


patapata_firebase_messaging 是一个用于在 Flutter 应用中集成 Firebase Cloud Messaging (FCM) 的插件。它简化了接收和处理推送通知的过程。以下是如何在 Flutter 项目中使用 patapata_firebase_messaging 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 patapata_firebase_messaging 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  patapata_firebase_messaging: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 配置 Firebase

确保你已经在 Firebase 控制台中创建了一个项目,并将 google-services.json(Android)和 GoogleService-Info.plist(iOS)文件添加到你的 Flutter 项目中。

Android 配置

android/app/build.gradle 文件中添加以下配置:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'  // 添加这一行

dependencies {
    implementation platform('com.google.firebase:firebase-bom:29.0.0')
    implementation 'com.google.firebase:firebase-messaging'
}

iOS 配置

ios/Runner/Info.plist 文件中添加以下配置:

<key>FirebaseAppDelegateProxyEnabled</key>
<true/>

3. 初始化 Firebase Messaging

在你的 main.dart 文件中初始化 Firebase Messaging:

import 'package:flutter/material.dart';
import 'package:patapata_firebase_messaging/patapata_firebase_messaging.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FirebaseMessaging.instance.initialize();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: HomeScreen(),
    );
  }
}

4. 处理消息

你可以通过监听消息流来处理接收到的消息:

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  String? _message;

  @override
  void initState() {
    super.initState();
    _setupFirebaseMessaging();
  }

  void _setupFirebaseMessaging() {
    FirebaseMessaging.instance.getToken().then((token) {
      print("FCM Token: $token");
    });

    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      setState(() {
        _message = message.notification?.title;
      });
    });

    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
      setState(() {
        _message = message.notification?.title;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Firebase Messaging Demo'),
      ),
      body: Center(
        child: Text(_message ?? 'Waiting for message...'),
      ),
    );
  }
}

5. 请求通知权限(iOS)

在 iOS 上,你需要请求用户允许发送通知。你可以在 initState 中添加以下代码:

FirebaseMessaging.instance.requestPermission();

6. 后台消息处理

如果你需要在后台处理消息,你可以使用 FirebaseMessaging.onBackgroundMessage。你需要定义一个顶级函数来处理后台消息:

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  print("Handling a background message: ${message.messageId}");
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FirebaseMessaging.instance.initialize();
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
  runApp(MyApp());
}
回到顶部