Flutter消息推送插件flutter_fcm_wrapper的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter消息推送插件flutter_fcm_wrapper的使用

Flutter FCM Wrapper

这是一个受PyFCM启发而创建的用于FCM REST API的封装包。

🧭 开始使用

➕ 安装

pubspec.yaml文件中添加Flutter FCM Wrapper:

dependencies:
  flutter_fcm_wrapper: <latest_version>

🔑 API Token

Firebase控制台获取API密钥:

  1. 进入你的Firebase项目
  2. 转到项目设置
  3. 转到云消息传递
  4. 获取服务器密钥

🍎 iOS配置

如果你要向Apple客户端发送消息,需要将APNs密钥添加到Firebase。更多详情可查看Apple平台上的Firebase Cloud Messaging客户端应用设置

📤 使用方法

🚧 构建Flutter FCM Wrapper实例

import 'package:flutter_fcm_wrapper/flutter_fcm_wrapper.dart';

FlutterFCMWrapper flutterFCMWrapper = const FlutterFCMWrapper(
  apiKey: "Your Own API Key",
  enableLog: true,
  enableServerRespondLog: true,
);

📄 发送主题消息

String result = await flutterFCMWrapper.sendTopicMessage(
    topicName: "example",
    title: "Example",
    body: "Topic message send using Flutter FCM Wrapper",
    androidChannelID: "example",
    clickAction: "FLUTTER_NOTIFICATION_CLICK"
);

🪙 发送令牌消息

Map<String, dynamic> result = await
  flutterFCMWrapper.sendMessageByTokenID(userRegistrationTokens: [user's token],
  title: "Example",
  body: "Token message send using Flutter FCM Wrapper",
  androidChannelID: "example",
  clickAction: "FLUTTER_NOTIFICATION_CLICK"
);

🪝 捕获异常

try {
    String result = await flutterFCMWrapper.sendTopicMessage(
        topicName: "example",
        title: "Example",
        body: "Topic message send using Flutter FCM Wrapper",
        androidChannelID: "example",
        clickAction: "FLUTTER_NOTIFICATION_CLICK"
    );
} on FlutterFCMWrapperInvalidDataException catch (e) {
//TODO:: 处理错误
} on FlutterFCMWrapperRespondException catch (e) {
//TODO:: 处理错误
}

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

1 回复

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


当然,下面是一个关于如何使用 flutter_fcm_wrapper 插件来实现 Firebase Cloud Messaging (FCM) 消息推送的示例代码。这个示例将涵盖基本的集成步骤,包括插件的安装、配置以及处理接收到的消息。

步骤 1: 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_fcm_wrapper: ^x.y.z  # 请替换为最新版本号

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

步骤 2: 配置 Firebase 项目

  1. 在 Firebase 控制台中创建项目:如果你还没有 Firebase 项目,请先创建一个。
  2. 添加 Android 应用:下载 google-services.json 文件并将其放置在 android/app/ 目录下。
  3. 添加 iOS 应用(如果适用):下载 GoogleService-Info.plist 文件并将其放置在 ios/Runner/ 目录下。同时,确保在 Xcode 中配置了相应的 Capabilities,如 Push Notifications。

步骤 3: 配置 android/app/build.gradle

android/app/build.gradle 文件中,确保应用级别构建脚本包含对 Google 服务的引用:

apply plugin: 'com.google.gms.google-services'

步骤 4: 配置 android/build.gradle

android/build.gradle 文件的 buildscript 部分,添加 Google 服务的 classpath 依赖:

buildscript {
    ext.kotlin_version = 'x.y.z'  // 替换为当前 Kotlin 版本
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:x.y.z'  // 替换为当前 Gradle 版本
        classpath 'com.google.gms:google-services:x.y.z'  // 替换为当前 Google 服务插件版本
    }
}

步骤 5: 初始化 FCM

在你的 Flutter 应用中,初始化 flutter_fcm_wrapper。通常,这会在 main.dart 或某个初始化服务中进行。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化 FCM
  await FlutterFcmWrapper.initialize(
    onMessage: (Map<String, dynamic> message) async {
      print("收到消息: $message");
      // 在这里处理接收到的消息
    },
    onResume: (Map<String, dynamic> message) async {
      print("应用恢复时收到消息: $message");
      // 在这里处理应用恢复时接收到的消息
    },
    onLaunch: (Map<String, dynamic> message) async {
      print("应用启动时收到消息: $message");
      // 在这里处理应用启动时接收到的消息
    },
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter FCM Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter FCM Demo'),
        ),
        body: Center(
          child: Text('等待消息...'),
        ),
      ),
    );
  }
}

步骤 6: 请求通知权限(可选,但推荐)

在你的应用中请求通知权限,这通常在应用启动时进行。可以使用 flutter_local_notifications 插件来实现这一点,它与 flutter_fcm_wrapper 可以很好地配合使用。

注意事项

  • 确保你的 Firebase 项目配置正确,包括 FCM 的设置。
  • 在 iOS 上,你需要配置 AppDelegate 以处理 FCM 回调(尽管 flutter_fcm_wrapper 通常会处理大部分工作,但你可能需要查看插件文档以确保所有必要的配置都已到位)。
  • 测试时,可以使用 Firebase 控制台发送测试消息来验证集成是否成功。

这个示例展示了基本的集成步骤和消息处理逻辑。根据你的具体需求,你可能需要扩展或修改这些代码。务必查阅 flutter_fcm_wrapper 的官方文档以获取最新信息和高级配置选项。

回到顶部