引入依赖
1.引入依赖
// 极光推送
jpush_flutter: ^2.1.5
2.注册初始化
// initState 初始化
JPush jpush = new JPush();
@override
void initState() {
// TODO: implement initState
super.initState();
jpush.setup(appKey: "写入极光注册下来的APPkey" ,channel: 'developer-default');
jpush.addEventHandler(
onReceiveNotification: (Map<String, dynamic> message) async {
print("flutter 接收到推送: $message");
},
);
jpush.getRegistrationID().then((rid) {
//推送可以以收到的RegistrationID方式进行推送,推送到个人手里内
print("flutter get registration id$rid");
///保存 极光推送注册id
});
print("___________________________________________");
}
极光注册应用
1.申请注册极光账号
2.创建应用,选择消息推送
3.下一步之后设置应用包名,必须跟项目包名一致
4.完成极光注册,复制极光Appkey
5.在Android/app/build.gradle加入加入ndk和manifestPlaceholders
// 加入
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
//加入
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "平台注册的appkey", // NOTE: JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
这是极光推送完成,可以在极光里推送了
华为注册项目应用
1.华为开发者联盟中心链接注册账号
https://developer.huawei.com/consumer/cn/
2.到管理中心选择push开发服务,创建项目
3.创建完成立即开通
4.点击添加应用
4.注意应用包名必须一致
5.创建完成下载json文件保存到Android/app目录下
6.回到极光,找到推送设置,集成设置,配置华为相关配置,上图应用的Client ID是appid,Client Secret是App Secret
7.配置完记得启用
8.项目打包jks获取秘钥
keytool -list -v -keystor 后面是jks路径(提示keytool 不是内部命令的话,cd 进入jdk安装路径bin下面再去输入命名就可以了)
keytool -list -v -keystor jks路径
输入密码后会有出来的sha256的加密字符串
9.填入到华为的sha256指纹证书
配置这边就完成了
配置环境
1.在Android/build.gradle
buildscript {
repositories {
google()
jcenter()
//加入
mavenCentral()
maven {url 'http://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
//加入
classpath 'com.huawei.agconnect:agcp:1.4.1.300'
}
}
allprojects {
repositories {
google()
jcenter()
//加入
mavenCentral()
maven {url 'http://developer.huawei.com/repo/'}
}
}
2.在Android/app/build.gradle
dependencies {
//加入
apply plugin: 'com.huawei.agconnect'
}
dependencies {
//加入
implementation 'com.huawei.hms:push:5.1.1.301'
implementation 'cn.jiguang.sdk.plugin:huawei:4.6.0'
}
3.在Android AndroidManifest.xml中加入
dependencies {
//加入
xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:label"
}