前言:本篇文章主要是在上一篇集成了ios和android极光推送的基础上进行延伸的。完成了上一篇推送集成之后的小伙伴会发现,对于android系统,只有在app打开的情况下才会收到推送消息。而如果杀死后台进程或者没有打开该app的话是收不到推送的。原因是只集成了极光推送,默认推送的通道是极光通道,而android还有其他的推送通道,比如华为,小米,oppo,vivo,魅族等。所以针对每一个厂商就需要进行一些设置才会在app在后台被杀死的情况下收到对应手机型号的推送。ios系统的是通过ios 的APNs来进行推送的,不论该app起没有启动都会收到推送,所以ios的不需要进行额外的设置。
1:需要去每个厂商的开发者中心进行账号注册,并且进行企业认证,因为目前大多数厂商都只支持企业认证,不再支持个人认证了。所以在卡到此处的小伙伴们需要咨询下公司的行政,请求人家帮你在厂商的开发者中心进行账号注册和企业认证哟,待认证成功之后再来看该篇文章。
2:开发者中心网址
华为:https://developer.huawei.com/
小米:https://dev.mi.com/console/
oppo:https://open.oppomobile.com/
vivo:https://dev.vivo.com.cn/home?cid=w-2-baidu-sem-kfpt-qt
进入后点击添加项目,创建个新的项目(该过程就省略了,应该没什么难度)。
创建完项目之后返回到我的项目页面,点击刚创建的项目,进入
进入后点击:添加应用。按钮
确认之后一直点击下一步,最后会返回到创应用界面,如下图
下载 agconnect-services.json 并将其放入到项目下面的 android/app/src 目录下
SHA256证书指纹的获取方法
先使用Android studio打开 AndroidManifest.xml 文件
点击下图右上角,出现提示,并打开新的 窗口,会进入到android目录
第一次进入可能会加载很久,需要等待加载完毕。然后按下图所示,双击signingReport
之后会在控制台打印出来 SHA-256 了,拿到填入华为开发者中心的SHA256证书指纹中即可
在 概览 的对应的应用里点击设置按钮
进入之后点击 ,推送设置
会进入到集成设置页面
其中的App ID 和AppSecret是之前在华为开发者中心创建的应用中查找,并填写,之后点击保存。
最后别忘记点击右上角 启用 按钮
1:build.grade
打开 android/app/build.grade 配置文件,在最下面的dependencies里面添加
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'cn.jiguang.sdk.plugin:xiaomi:4.0.6'//版本号和对应的JPush版本号相同
implementation 'cn.jiguang.sdk.plugin:oppo:4.0.6'//版本号和对应的JPush版本号相同
implementation 'com.huawei.hms:push:5.1.1.301'
implementation 'cn.jiguang.sdk.plugin:huawei:4.0.6'
}
apply plugin: 'com.huawei.agconnect'
2:配置自己的签名文件
在控制台输入该命令
keytool -genkey -alias android.key -keyalg RSA -validity 20000 -keystore /Users/abc/AndroidStudioProjects/项目名称/lib/android.key
之后按照控制台提示步骤进行即可。
如果是苹果电脑的小伙伴可能会出现没有keytool命令的话需要去oracel官网下载macos版本的jdk1.8版本。
注意上面是指定路径保存的android.key文件,不是默认保存的,因为可能默认安装的jdk路径没有写权限,只有读权限。
如果不知道怎么获取路径的话,可以打开终端,将你要保存的android.key文件的路径拖入进入就可以获得一个完整的路径。比如我将项目下面的lib目录拖入到终端就会得到路径名
最后将得到的签名文件放入到 android/app 下面
**3:**回到android/app/build.grade 配置文件中
signingConfigs {
release {
keyAlias 'android.key'
keyPassword 'zxc123..'
storeFile file('android.key')
storePassword 'zxc123..'
}
debug {
keyAlias 'android.key'
keyPassword 'zxc123..'
storeFile file('android.key')
storePassword 'zxc123..'
}
**4:**在项目的 android/build.gradle 中添加代码
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.huawei.agconnect:agcp:1.4.1.300'
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
**5:**在app/src/main/AndroidManifest.xml 下面添加代码
xmlns:tools="http://schemas.android.com/tools"
<application
android:name="io.flutter.app.FlutterApplication"
android:label="abc"
tools:replace="android:label"
android:usesCleartextTraffic="true"
android:icon="@mipmap/logo">
最后重新运行项目,如果控制台出现下图所示,就说明配置成功了。
如果配置失败的话,还请检查 极光官网 的华为通道配置是否和华为开发者中心创建的应用参数对应。还有SHA-256是否输入错入。
当最难配置的华为厂商通道配置成功之后,剩下的几个就比较容易些了。
一开始都是和华为配置一样,先去各厂商的开发者中心注册创建应用。拿到Appkey等一些参数之后去极光官网配置。配置完成之后来到 app/build.gradle
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "xxxxxx", // NOTE: JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "thisPush", //暂时填写默认值即可.
XIAOMI_APPID : "MI-xxxxxxx",
XIAOMI_APPKEY : "MI-xxxxxx",
OPPO_APPKEY : "OP-xxxxxxxx", // OPPO平台注册的appkey
OPPO_APPID : "OP-xxxxxx", // OPPO平台注册的appid
OPPO_APPSECRET: "OP-xxxxxx",//OPPO平台注册的appsecret
VIVO_APPKEY : "xxxxxxx", // VIVO平台注册的appkey
VIVO_APPID : "xxxxxx", // VIVO平台注册的appid
MEIZU_APPKEY : "MZ-xxxxx", // 魅族平台注册的appkey
MEIZU_APPID : "MZ-xxxxxx", // 魅族平台注册的appid
]
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'cn.jiguang.sdk.plugin:xiaomi:4.0.6'//版本号和对应的JPush版本号相同
implementation 'cn.jiguang.sdk.plugin:oppo:4.0.6'//版本号和对应的JPush版本号相同
implementation 'cn.jiguang.sdk.plugin:vivo:4.0.6'//版本号和对应的JPush版本号相同
implementation 'com.huawei.hms:push:5.1.1.301'
implementation 'cn.jiguang.sdk.plugin:huawei:4.0.6'
}
代码配置这两项即可!!!
大家可以参考下另一位大佬写的flutter配置小米厂商通道推送的文章,下面是链接
https://blog.csdn.net/yaochangliang159/article/details/117924774