1.在极光官网注册账号,如果有可以直接登录。
2.登录后创建应用,获取appKey。
3.在pubspec.yaml 中添加jpush_flutter
jpush_flutter: 0.0.11
然后获取package。
4.在android/app/build.gradle文件中android下的defaultConfig添加
ndk {
//选择要添加的对应 cpu 类型的 .so 库。消息推送需要用到 根据情况选择
abiFilters 'armeabi', 'armeabi-v7a' //'x86', 'x86_64', 'mips', 'mips64' // 'arm64-v8a',
}
manifestPlaceholders = [
JPUSH_PKGNAME : 包名,
JPUSH_APPKEY : AppKey, //JPush上注册的包名对应的appkey.
JPUSH_CHANNEL : "developer-default",
]
ndk 在用真机测试时注释,在发布apk时选择自己需要的类型
5.在项目中使用
在main.dart(放在哪个文件内自己选择)中引入
import 'package:jpush_flutter/jpush_flutter.dart';
在MyHomePage中初始化
JPush jpush = new JPush();
void initState() {
// TODO: implement initState
super.initState();
// 配置jpush(不要省略)
jpush.setup(appKey: AppKey ,channel: 'developer-default');
// 监听jpush
jpush.addEventHandler(
onReceiveNotification: (Map<String, dynamic> message) async {
print("flutter 接收到推送: $message");
},
onOpenNotification: (Map<String, dynamic> message) {
// 点击通知栏消息,在此时通常可以做一些页面跳转等
},
);
}
创建本地消息
var fireDate = DateTime.fromMillisecondsSinceEpoch(DateTime.now().millisecondsSinceEpoch);
var localNotification = LocalNotification(
id: 234,
title: '测试本地推送',
buildId: 1,
content: '我是本地推送的消息',
fireTime: fireDate,
subtitle: 'ios 消息推送', // 该参数只有在 iOS 有效
badge: 5, // 该参数只有在 iOS 有效
extras: {"fa": "0"} // 设置 extras ,extras 需要是 Map<String, String>
);
此时就可以进行消息推送了