flutter 极光推送华为厂商通道推送
前言:本篇文章主要是在上一篇集成了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
二、华为厂商通道推送全流程
1:华为开发者中心配置
进入官网后点击“我的项目”
进入后点击添加项目,创建个新的项目(该过程就省略了,应该没什么难度)。
创建完项目之后返回到我的项目页面,点击刚创建的项目,进入
进入后点击:添加应用。按钮
确认之后一直点击下一步,最后会返回到创应用界面,如下图
下载 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"
<applicationandroid:name="io.flutter.app.FlutterApplication"android:label="abc"tools:replace="android:label"android:usesCleartextTraffic="true"android:icon="@mipmap/logo">
最后重新运行项目,如果控制台出现下图所示,就说明配置成功了。
如果配置失败的话,还请检查 极光官网 的华为通道配置是否和华为开发者中心创建的应用参数对应。还有SHA-256是否输入错入。
五、小米,OPPO,vivo配置
当最难配置的华为厂商通道配置成功之后,剩下的几个就比较容易些了。
一开始都是和华为配置一样,先去各厂商的开发者中心注册创建应用。拿到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平台注册的appkeyOPPO_APPID : "OP-xxxxxx", // OPPO平台注册的appidOPPO_APPSECRET: "OP-xxxxxx",//OPPO平台注册的appsecretVIVO_APPKEY : "xxxxxxx", // VIVO平台注册的appkeyVIVO_APPID : "xxxxxx", // VIVO平台注册的appid MEIZU_APPKEY : "MZ-xxxxx", // 魅族平台注册的appkeyMEIZU_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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!