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'), // 显示推送消息
),
),
);
}
}
示例效果
运行上述代码后,您将看到类似以下的效果:
-
初始化成功:
======registeredId:your_device_token=====
-
接收到推送消息:
获取收到的推送消息onReceiveNotification: {"title":"测试标题","description":"测试内容","customContent":{"key1":"value1"}}
-
点击推送消息:
获取点击的推送消息onOpenNotification: {"title":"测试标题","description":"测试内容","customContent":{"key1":"value1"}}
更多关于Flutter推送服务插件flutter_s_umeng_push的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于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 友盟推送!"),
),
);
}
}