目前众多推送厂家只有极光支持了flutter,支持一下!!!
废话不多说,开始撸代码
因为设备的原因目前只在安卓上测试成功,就先分享安卓的配置过程,首先在极光官网创建应用,完成之后在 android/app/build.gradle文件下添加配置:
android {
.... 你的代码
defaultConfig {
.....
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "你的极光推送key", //JPush上注册的包名对应的appkey.
JPUSH_CHANNEL : "你的推送渠道,如果不知道填写developer-default即可",
]
}
老规矩,添加依赖
dependencies:
flutter:
sdk: flutter
flutter_jpush: ^0.0.4
import 'package:flutter_jpush/flutter_jpush.dart';
在程序入口初始化Jpush,也就是在 main页面初始化的时候添加:
void _startupJpush() async {
print("初始化jpush");
await FlutterJPush.startup();
print("初始化jpush成功");
}
在没有后台的情况下,可以在官网进行在线测试,
点击发送手机就可以收到消息啦!!!
如果真机运行报错:couldn’t find “libflutter.so”
在android/app/build.gradle添加配置:
ndk{
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64' // 'arm64-v8a',
}
或者可以增加编译选项:
--target-platform android-arm64 或者 --target-platform android-arm
如果运行没有报错,则不用添加;添加之后会启动不起来!!!
接下来有几个扩展方法一并介绍一下:
监听addReceiveNotificationListener方法:
/*
* 收到推送提醒
* */
void _ReceiveNotification() async {
FlutterJPush.addReceiveNotificationListener(
(JPushNotification notification) {
setState(() {
/// 收到推送
print("收到推送提醒: $notification");
});
});
}
监听 addReceiveNotificationListener方法:
/*
* 打开推送提醒
* */
void _OpenNotification() async {
FlutterJPush.addReceiveOpenNotificationListener(
(JPushNotification notification) {
setState(() {
print("打开了推送提醒: $notification");
});
});
}
一般项目这个方法会用的比较多吧!!!
监听 addReceiveCustomMsgListener方法:
/*
* 监听接收自定义消息
* */
void _ReceiveCustomMsg() async {
FlutterJPush.addReceiveCustomMsgListener((JPushMessage msg) {
setState(() {
print("收到推送消息提醒: $msg");
});
});
}
其他方法很少用到,就不再赘述了;