Flutter推送服务插件flutter_push_devonics的使用

Flutter推送服务插件flutter_push_devonics的使用

Push Devonics Flutter 插件用于在 Flutter 应用中实现推送通知功能。

开始使用

首先,在 main.dart 文件中初始化 Push Devonics 插件。

初始化 Push Devonics

FlutterPushDevonics.init("APP_ID");

获取用户 ID

如果需要获取用户的推送 ID,可以使用以下代码:

String userID = await FlutterPushDevonics.getUserID ?? 'Empty User ID';

添加标签到用户

可以通过以下方式为用户添加标签:

FlutterPushDevonics.sendTag("KEY", "VALUE");

完整示例代码

以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 flutter_push_devonics 插件。

示例代码

example/lib/main.dart

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

import 'package:flutter_push_devonics/flutter_push_devonics.dart'; // 导入插件

void main() {
  runApp(const MyApp()); // 启动应用
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState(); // 初始化状态
}

class _MyAppState extends State<MyApp> {
  String _userID = 'Empty'; // 用户 ID 的初始值

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState(); // 初始化平台状态
  }

  // 异步初始化方法
  Future<void> initPlatformState() async {
    try {
      // 初始化 Push Devonics 插件并传入 APP_ID
      FlutterPushDevonics.init("APP_ID");

      // 发送标签
      FlutterPushDevonics.sendTag("TEST", "VALUE TEST");

      // 获取用户 ID
      String userID = await FlutterPushDevonics.getUserID ?? 'Empty User ID';

      // 如果组件被移除,则不更新状态
      if (!mounted) return;

      // 更新 UI 界面
      setState(() {
        _userID = userID;
      });
    } catch (e) {
      // 捕获异常
      print("Error initializing Push Devonics: $e");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold( // 主页面
        appBar: AppBar(
          title: const Text('PUSH DEVONICS'), // 设置标题
        ),
        body: Center( // 页面中心
          child: Text( // 显示用户 ID
            'PUSH USER ID: $_userID\n',
            style: TextStyle(fontSize: 18), // 设置字体大小
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


flutter_push_devonics 是一个用于在 Flutter 应用中集成推送通知服务的插件。它支持多种推送服务提供商,如 Firebase Cloud Messaging (FCM)、Apple Push Notification Service (APNs) 等。以下是如何使用 flutter_push_devonics 插件的基本步骤:

1. 添加依赖

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

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

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

2. 配置推送服务

根据你使用的推送服务提供商(如 FCM 或 APNs),进行相应的配置。

Firebase Cloud Messaging (FCM)

  1. Firebase 控制台 中创建一个新的项目。
  2. google-services.json 文件下载并放置到 android/app 目录中。
  3. ios/Runner 目录中,将 GoogleService-Info.plist 文件添加到 Xcode 项目中。

Apple Push Notification Service (APNs)

  1. 在 Apple Developer 门户中创建并配置推送通知证书。
  2. 在 Xcode 中启用推送通知功能。

3. 初始化插件

main.dart 文件中初始化 flutter_push_devonics 插件:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化推送服务
  await FlutterPushDevonics.initialize(
    fcmSenderId: 'YOUR_FCM_SENDER_ID',  // 仅适用于 FCM
    apnsEnvironment: ApnsEnvironment.production,  // 仅适用于 APNs
  );

  runApp(MyApp());
}

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

4. 处理推送通知

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

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

class _HomeScreenState extends State<HomeScreen> {
  String _message = 'No message received';

  @override
  void initState() {
    super.initState();
    
    // 监听推送通知
    FlutterPushDevonics.onMessage.listen((PushMessage message) {
      setState(() {
        _message = message.data['message'] ?? 'No message';
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Push Demo'),
      ),
      body: Center(
        child: Text(_message),
      ),
    );
  }
}

5. 获取设备令牌

你可以通过以下方式获取设备的推送令牌:

String token = await FlutterPushDevonics.getToken();
print('Device Token: $token');

6. 处理后台通知

对于后台通知,你可以在 onBackgroundMessage 中处理:

Future<void> _backgroundMessageHandler(PushMessage message) async {
  print('Background Message: ${message.data}');
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化推送服务
  await FlutterPushDevonics.initialize(
    fcmSenderId: 'YOUR_FCM_SENDER_ID',
    apnsEnvironment: ApnsEnvironment.production,
    onBackgroundMessage: _backgroundMessageHandler,
  );

  runApp(MyApp());
}

7. 处理点击通知

你可以通过 onMessageOpenedApp 来处理用户点击通知的行为:

FlutterPushDevonics.onMessageOpenedApp.listen((PushMessage message) {
  print('Notification clicked: ${message.data}');
});

8. 取消订阅

如果你不再需要接收推送通知,可以取消订阅:

await FlutterPushDevonics.unsubscribeFromTopic('your_topic');
回到顶部