flutter极光推送&集成华为厂商通道
Published on Jun 24, 2024, with 35 view(s) and 0 comment(s)
Ai 摘要:本文介绍了在Flutter中集成极光推送并配置华为厂商通道的步骤。首先安装`jpush_flutter`插件,配置Android项目的`build.gradle`文件并注册极光应用。随后通过华为开发者联盟开通推送服务,下载配置文件并添加相关依赖。重点解决证书指纹生成和`AndroidManifest.xml`的配置冲突问题,最后在极光和华为平台完成厂商通道配置。文末提供了完整代码示例,确保应用在后台或被杀死时仍能接收推送通知。

安装与配置极光推送

Description

flutter中安装极光官方插件:jpush_flutter

https://pub.dev/packages/jpush_flutter 按照官方提示在 /android/app/build.gradle 中配置下列代码:

android: {
  ....
  defaultConfig {
    applicationId "替换成自己应用 ID"
    ...
    manifestPlaceholders = [
        JPUSH_PKGNAME : applicationId,
        JPUSH_APPKEY : "appkey", // NOTE: JPush 上注册的包名对应的 Appkey.
        JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
    ]
  }

在极光中创建应用

Description

创建完成后补全第一步中的 manifestPlaceholders。

Description

根据提示补全包名:即你项目中的applicationId

运行项目:报错

Description

按照报错提示补全

manifestPlaceholders = [
     applicationName: "android.app.Application",
     JPUSH_PKGNAME : applicationId,
     JPUSH_APPKEY : "590951ceb353e55c81f317f6", // NOTE: JPush 上注册的包名对应的 Appkey.
     JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]

拿到官方example代码

https://github.com/jpush/jpush-flutter-plugin/blob/dev-3.x/example/lib/main.dart 补全appKey并运行。

如果出现打印 flutter get registration id:你的软件注册id表示注册成功。

Description

到官网进行推送测试

Description

Description

Description

收到通知。:grinning:

但是这种通知当应用程序进行killed后就收不到了,所以我们还需要集成各大手机厂商通道。

集成huawei厂商通道

到华为开发者联盟中新建一个项目

https://developer.huawei.com/consumer/cn/console/service/AppService

Description

Description

开通推送服务

Description

添加个应用

Description

Description

下载配置文件放到项目级目录下

Description

Description

按照其配置步骤来

Description

添加极光华为sdk依赖

Description

dependencies {
    implementation "cn.jiguang.sdk:jpush:5.2.3"
    implementation "com.huawei.agconnect:agconnect-core:1.8.1.300"
    implementation "com.huawei.hms:push:6.12.0.300"
    implementation "cn.jiguang.sdk.plugin:huawei:5.2.3"
}

生成并配置证书指纹https://developer.huawei.com/consumer/cn/codelab/HMSPreparation/index.html#2

Description

Description

//指令
keytool -genkey -v -keystore lvmaoya.jks -keyalg RSA -keysize 2048 -validity 10000 -alias lvmaoya

keytool -list -v -keystore lvmaoya.jks

报错:

Description

解决:配置androidmanifest.xml

// maifest 标签新增属性
xmlns:tools="http://schemas.android.com/tools"
// application标签新增属性 
tools:replace="android:label"

Description

配置完成之后到极光里配置厂商通道

Description

配置完成之后到华为项目里配置推送服务和回执

Description

代码实例

https://github.com/lvmaoya/lvmaoya-flutter