当前位置:网站首页>Flutter集成极光推送
Flutter集成极光推送
2022-07-26 10:39:00 【Flutter萌新学院】
pubspec.yaml导入插件
#极光推送
jpush_flutter: 0.6.3
Flutter新建Push管理类
import 'dart:io';
import 'package:flutter/services.dart';
import 'package:jpush_flutter/jpush_flutter.dart';
import 'package:lcpay_app/common/config/appConfig.dart';
import 'package:lcpay_app/router/router_manger.dart';
import 'package:lcpay_app/utils/logUtils.dart';
import 'package:localstorage/localstorage.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sp_util/sp_util.dart';
import '../../main.dart';
final JPushManager jPushManager = JPushManager();
class JPushManager {
factory JPushManager() => _sharedInstance();
static JPushManager _instance;
static JPushManager _sharedInstance() {
if (_instance == null) {
_instance = JPushManager._();
}
return _instance;
}
JPushManager._() {
_jpush = JPush();
_jpush.addEventHandler(
// 接收通知回调方法。
onReceiveNotification: _onReceiveNotification,
// 点击通知回调方法。
onOpenNotification: _onOpenNotification,
// 接收自定义消息回调方法。
onReceiveMessage: _onReceiveMessage,
onReceiveNotificationAuthorization: _onReceiveNotificationAuthorization,
);
}
JPush _jpush;
Future setup() async {
_jpush.setup(
appKey: “XXXXXXX”, //你自己应用的 AppKey
channel: "developer-default",
production: true, //是否生产环境
debug: true, //debug则 打印log
);
_jpush.applyPushAuthority(
NotificationSettingsIOS(sound: true, alert: true, badge: true));
// _jpush.clearAllNotifications();
// _jpush.setBadge(0);
}
// 设置别名
void setAlias(String alias) {
_jpush.setAlias(alias);
}
// 设置tags
void setTags(List<String> tags) {
_jpush.setTags(tags);
}
// 获取RegistrationID
Future<String> getRegistrationID() async {
try {
return await _jpush.getRegistrationID();
} catch (e, s) {
LogUtils.d(s);
return "";
}
}
Future<dynamic> _onReceiveNotification(Map<String, dynamic> message) async {
LogUtils.d("flutter onReceiveNotification: $message");
}
Future<dynamic> _onOpenNotification(Map<String, dynamic> message) async {
//TODO 这里点击通知后 解析 数据 分别跳转相应路由
LogUtils.d("flutter onOpenNotification: $message");
}
Future<dynamic> _onReceiveMessage(Map<String, dynamic> message) async {
LogUtils.d("flutter onReceiveMessage: $message");
}
Future<dynamic> _onReceiveNotificationAuthorization(
Map<String, dynamic> message) async {
LogUtils.d("flutter onReceiveNotificationAuthorization: $message");
}
}
//JPushManager 在main中初始化
void main() {
runApp(MyApp());
jPushManager.setup();// JPush初始化
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
.....}
//在其他页面全局添加tags 如登录后添加 tags,
List<String> tagList = [userInfo.id]; //如 我把usrId 当作tag
jPushManager.setTags(tagList); //全局添加
android iOS还需要配置 参考 官方插件例子
边栏推荐
- display-inline+calc实现左中右布局,中间自适应
- 12 don't forget every component when copying an object
- 父类对子类的引用(父类引用指向子类对象)
- Navicat15 MySQL (centos7) connected to local virtual machine
- router.push(),router.repalce(),router.go()使用
- GIS方法类期刊和论文的综述(Introduction)怎么写?
- 超图 影像 如何去除黑边(两种方法)
- Oracle创建索引
- .net operation redis list list
- SuperMap IClient for Leaflet 加载高斯克吕格投影三度分带CGCS2000大地坐标系WMTS服务
猜你喜欢

vscode上使用anaconda(已经配置好环境)

Issue 8: cloud native -- how should college students learn in the workplace

Write to esp8266 burning brush firmware
![[leetcode daily question 2021/2/14]765. Lovers hold hands](/img/be/8639a05c733638bf0b3fdeb11abccf.png)
[leetcode daily question 2021/2/14]765. Lovers hold hands

Oracle cannot start tnslistener service cannot start

IAR sprintf 浮点 在UCOS 总格式化成0.0的问题
![[leetcode每日一题2021/8/31]1109. 航班预订统计【中等】差分数组](/img/9d/5ce5d4144a9edc3891147290e360d8.png)
[leetcode每日一题2021/8/31]1109. 航班预订统计【中等】差分数组

异常的概念与处理
![[leetcode daily question 2021/2/13]448. Find all the missing numbers in the array](/img/9b/624416fa6a408bf64ca5438273176b.png)
[leetcode daily question 2021/2/13]448. Find all the missing numbers in the array

Dry goods likeshop takeout order system is open source, 100% open source, no encryption
随机推荐
RT-Thread 学习笔记(七)---开启基于SPI Flash的elmfat文件系统(中)
工厂模式详解
Datav beautiful data screen production experience
[leetcode每日一题2021/4/29]403. 青蛙过河
sigmod 函数与softmax 函数对比
MySQL速学-2021-09-01
[leetcode每日一题2021/5/8]1723. 完成所有工作的最短时间
RT-Thread 学习笔记(八)---开启基于SPI Flash的elmfat文件系统(下)
IAR sprintf 浮点 在UCOS 总格式化成0.0的问题
2022pta usual training questions (1-10 string processing questions)
datav漂亮数据屏制作体验
剑指Offer(四十四):翻转单词顺序序列
鹏哥C语言——扫雷2021-08-16
[leetcode daily question 2021/4/23]368. Maximum divisible subset
algorithm
剑指Offer(八):跳台阶
Flutter TextField怎样去除下划线及有焦点时颜色
剑指Offer(二十):包含min函数的栈
2021-08-13和鹏哥学C语言-数组
2021-08-12函数递归_和鹏哥学习C语言