Flutter推送服务插件flutter_s_umeng_push的使用

Flutter推送服务插件flutter_s_umeng_push的使用

安装

pubspec.yaml文件中添加flutter_s_umeng_push依赖:

dependencies:
  flutter_s_umeng_push: ^${latestVersion}

然后执行以下命令以更新依赖项:

flutter pub get

使用

首先,确保在项目中导入插件:

import 'package:flutter_s_umeng_push/flutter_s_umeng_push.dart';

接下来,初始化友盟SDK,并在所有方法使用之前调用初始化函数:

/// 初始化友盟sdk,在所有方法使用之前
FlutterUmengPush.init(
  appKey: '你的友盟应用appkey',       // 替换为你的友盟AppKey
  messageSecret: '你的友盟应用messageSecret', // 替换为你的Message Secret
  logEnabled: false,                  // 是否开启日志,默认为false
);

方法说明

以下是flutter_s_umeng_push插件的主要方法及其功能描述:

Method Description Result
init 初始化友盟SDK,需在调用任何方法前调用 Future
register 注册友盟推送服务 Future
addEventHandler 添加推送消息监听器 void
setTokenCallback 设置Token回调(仅适用于Android) void
setMessageCallback 设置自定义消息回调(仅适用于Android) void
getRegisteredId 获取设备的推送ID Future<String?>
setPushEnable 开关推送功能 Future
setAlias 设置别名 Future<bool?>
removeAlias 删除别名 Future<bool?>
removeTags 删除标签 Future<bool?>
getTags 获取所有标签 Future<List>

示例代码

以下是一个完整的示例代码,展示如何使用flutter_s_umeng_push插件:

// ignore_for_file: avoid_print

/*
 * @Author: Arno.su
 * @Date: 2022-10-28 13:10:25
 * @LastEditors: Arno.su
 * @LastEditTime: 2023-08-15 10:48:55
 */
import 'dart:async';

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? msg; // 用于存储推送消息

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

  // 平台消息是异步的,因此我们在这里进行初始化
  Future<void> initPlatformState() async {
    /// 初始化友盟推送
    await FlutterUmengPush.init(
      appKey: '友盟Appkey',             // 替换为你的友盟AppKey
      messageSecret: '友盟messageSecret', // 替换为你的Message Secret
      logEnabled: false,                // 是否开启日志,默认为false
    );

    /// 监听推送事件
    FlutterUmengPush.addEventHandler(
      onOpenNotification: (message) async {
        setState(() {
          msg = message.toJson().toString(); // 更新UI
          print("获取点击的推送消息onOpenNotification: $msg");
        });
      },
      onReceiveNotification: (message) async {
        setState(() {
          msg = message.toJson().toString(); // 更新UI
          print("获取收到的推送消息onReceiveNotification: $msg");
        });
      },
    );

    /// 注册友盟推送服务
    await FlutterUmengPush.register();
    String? registeredId = await FlutterUmengPush.getRegisteredId();
    print('======registeredId:$registeredId=====');

    /// 设置自定义消息回调(仅适用于Android)
    FlutterUmengPush.setMessageCallback((message) {
      print('获取Android自定义推送消息===========${message.toJson()}');
    });

    /// 设置别名(仅适用于iOS)
    FlutterUmengPush.setAlias('13002115118', 'ios');
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('友盟推送插件示例'),
        ),
        body: Center(
          child: Text('推送消息数据:$msg'), // 显示推送消息
        ),
      ),
    );
  }
}

示例效果

运行上述代码后,您将看到类似以下的效果:

  1. 初始化成功

    ======registeredId:your_device_token=====
    
  2. 接收到推送消息

    获取收到的推送消息onReceiveNotification: {"title":"测试标题","description":"测试内容","customContent":{"key1":"value1"}}
    
  3. 点击推送消息

    获取点击的推送消息onOpenNotification: {"title":"测试标题","description":"测试内容","customContent":{"key1":"value1"}}
    

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

1 回复

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


flutter_s_umeng_push 是一个 Flutter 插件,用于集成友盟推送服务。它允许你在 Flutter 应用中实现消息推送功能。以下是使用 flutter_s_umeng_push 插件的步骤:

1. 添加依赖

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

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

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

2. 配置 Android 项目

android/app/build.gradle 文件中,确保你已经正确配置了友盟推送所需的依赖和权限:

android {
    ...
    defaultConfig {
        ...
        manifestPlaceholders = [
            UMENG_APPKEY: "你的友盟AppKey",
            UMENG_MESSAGE_SECRET: "你的友盟MessageSecret"
        ]
    }
}

dependencies {
    ...
    implementation 'com.umeng.umsdk:push:6.3.3'  // 友盟推送SDK
    implementation 'com.umeng.umsdk:common:9.4.4' // 友盟基础组件库
}

3. 配置 iOS 项目

ios/Runner/Info.plist 文件中添加友盟推送相关的配置:

<key>UMAppKey</key>
<string>你的友盟AppKey</string>
<key>UMChannel</key>
<string>App Store</string>
<key>UMPushAppKey</key>
<string>你的友盟PushAppKey</string>
<key>UMPushAppSecret</key>
<string>你的友盟PushAppSecret</string>

4. 初始化友盟推送

main.dart 文件中初始化友盟推送服务:

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

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

  // 初始化友盟推送
  await FlutterSUmengPush.init(
    appKey: "你的友盟AppKey",
    messageSecret: "你的友盟MessageSecret",
    channel: "App Store",
    productionMode: false, // 是否生产环境
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  void initState() {
    super.initState();

    // 监听推送消息
    FlutterSUmengPush.addMessageHandler((message) {
      print("收到推送消息: $message");
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter 友盟推送示例"),
      ),
      body: Center(
        child: Text("Hello, Flutter 友盟推送!"),
      ),
    );
  }
}
回到顶部