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:华为开发者中心配置
进入官网后点击“我的项目”
flutter 极光推送华为厂商通道推送_第1张图片

进入后点击添加项目,创建个新的项目(该过程就省略了,应该没什么难度)。
创建完项目之后返回到我的项目页面,点击刚创建的项目,进入
flutter 极光推送华为厂商通道推送_第2张图片
进入后点击:添加应用。按钮
flutter 极光推送华为厂商通道推送_第3张图片

flutter 极光推送华为厂商通道推送_第4张图片
确认之后一直点击下一步,最后会返回到创应用界面,如下图
flutter 极光推送华为厂商通道推送_第5张图片
下载 agconnect-services.json 并将其放入到项目下面的 android/app/src 目录下
flutter 极光推送华为厂商通道推送_第6张图片
SHA256证书指纹的获取方法
先使用Android studio打开 AndroidManifest.xml 文件
flutter 极光推送华为厂商通道推送_第7张图片
点击下图右上角,出现提示,并打开新的 窗口,会进入到android目录
flutter 极光推送华为厂商通道推送_第8张图片
第一次进入可能会加载很久,需要等待加载完毕。然后按下图所示,双击signingReport
flutter 极光推送华为厂商通道推送_第9张图片
之后会在控制台打印出来 SHA-256 了,拿到填入华为开发者中心的SHA256证书指纹中即可
flutter 极光推送华为厂商通道推送_第10张图片

三:极光官网配置

在 概览 的对应的应用里点击设置按钮
flutter 极光推送华为厂商通道推送_第11张图片
进入之后点击 ,推送设置
flutter 极光推送华为厂商通道推送_第12张图片
会进入到集成设置页面flutter 极光推送华为厂商通道推送_第13张图片
其中的App ID 和AppSecret是之前在华为开发者中心创建的应用中查找,并填写,之后点击保存。
最后别忘记点击右上角 启用 按钮
flutter 极光推送华为厂商通道推送_第14张图片

四:项目配置

1:build.grade
打开 android/app/build.grade 配置文件,在最下面的dependencies里面添加
flutter 极光推送华为厂商通道推送_第15张图片

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'

}

还在该页面 添加
flutter 极光推送华为厂商通道推送_第16张图片

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目录拖入到终端就会得到路径名
flutter 极光推送华为厂商通道推送_第17张图片
最后将得到的签名文件放入到 android/app 下面
flutter 极光推送华为厂商通道推送_第18张图片
**3:**回到android/app/build.grade 配置文件中
flutter 极光推送华为厂商通道推送_第19张图片

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 中添加代码
flutter 极光推送华为厂商通道推送_第20张图片

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 下面添加代码

flutter 极光推送华为厂商通道推送_第21张图片

xmlns:tools="http://schemas.android.com/tools"

flutter 极光推送华为厂商通道推送_第22张图片

<application
        android:name="io.flutter.app.FlutterApplication"
        android:label="abc"
        tools:replace="android:label"
        android:usesCleartextTraffic="true"
        android:icon="@mipmap/logo">

最后重新运行项目,如果控制台出现下图所示,就说明配置成功了。
flutter 极光推送华为厂商通道推送_第23张图片
如果配置失败的话,还请检查 极光官网 的华为通道配置是否和华为开发者中心创建的应用参数对应。还有SHA-256是否输入错入。

五、小米,OPPO,vivo配置

当最难配置的华为厂商通道配置成功之后,剩下的几个就比较容易些了。

一开始都是和华为配置一样,先去各厂商的开发者中心注册创建应用。拿到Appkey等一些参数之后去极光官网配置。配置完成之后来到 app/build.gradle

flutter 极光推送华为厂商通道推送_第24张图片

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
    ]     

flutter 极光推送华为厂商通道推送_第25张图片

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

你可能感兴趣的:(flutter,flutter,华为)