flutter集成极光推送google play版本
首先是正常极光推送的使用
1.在pubspec.yaml中引入库:jpush_flutter: ^2.4.2
2.创建极光推送工具类
class JPushUtil{static initJPush(){JPush().addEventHandler(onReceiveNotification: (Map message) async{//推送通知栏新消息print('new message:$message');},onOpenNotification: (Map message) async{//点击通知print('onOpenNotification:$message');setBadge(0);},onNotifyMessageUnShow: (Map message) async{//不显示消息时回调setBadge(0);},);JPush().applyPushAuthority(NotificationSettingsIOS(sound: true,alert: true,badge: true));JPush().setup(appKey: 'jpush appkey',channel: 'developer-default',production: false,debug: true);}//设置tagsstatic setTags(List<String> tags){JPush().setTags(tags);}//设置别名static setAlias(String alias){JPush().setAlias(alias);}//删除别名static deleteAlias(){JPush().deleteAlias();}//清空tagsstatic cleanTags(){JPush().cleanTags();}//设置角标static setBadge(int badge){JPush().setBadge(badge);}
}
3.配置app下的build.gradle
在build.gradle的android>defaultConfig中增加配置 manifestPlaceholders
android {compileSdkVersion 33lintOptions {checkReleaseBuilds falseabortOnError false}sourceSets {main.java.srcDirs += 'src/main/kotlin'}lintOptions {disable 'InvalidPackage'}defaultConfig {// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).applicationId ""minSdkVersion 20targetSdkVersion 31versionCode flutterVersionCode.toInteger()versionName flutterVersionNamemultiDexEnabled truendk{//选择要添加的对应 cpu 类型的 .so 库。//armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设三=三很少设备,三星 Galaxy S6是其中之一。// arm64-v8a: 第8代、64位ARM处理器// armeabi: 第5代、第6代的ARM处理器早期的手机用的比较多。// x86: 平板、模拟器用得比较多。// x86 64: 64位的平板。//mips:MIPS32r1 及更高版本(使用硬浮点,并且假设 CPU:FPU 时钟比率为 2:1 以获取最大兼容性。 不提供 micromips 或 MIPS16。)//mips64:MIPS64r6//设置支持的S0库架构“armeabi","armeabi-v7a","arm64-v8a","x86""x86//abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'abiFilters 'armeabi-v7a','arm64-v8a'}/* addManifestPlaceholders([TENCENT_APP_ID: "1109119450"])*/manifestPlaceholders = [TENCENT_APP_ID: "",JPUSH_PKGNAME : "在极光推送配置的包名",JPUSH_APPKEY : "", // NOTE: JPush 上注册的包名对应的 Appkey.JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.XIAOMI_APPID : "MI-appid",XIAOMI_APPKEY : "MI-appkey",
// XIAOMI_APPSECRET : "MI-appsecert",OPPO_APPID : "OP-appid",OPPO_APPKEY : "OP-appkey",OPPO_APPSECRET : "OP-appsecert",VIVO_APPID : "",VIVO_APPKEY : "",
// VIVO_APPSECRET : "",
// HUAWEI_APPID : "",
// HUAWEI_APPKEY : "",
// HUAWEI_APPSECRET : "",]}signingConfigs {release {storeFile file("ati.jks")storePassword ""keyAlias "ati"keyPassword ""}debug {storeFile file("ati.jks")storePassword ""keyAlias "ati"keyPassword ""}}buildTypes {release {// Signing with the debug keys for now, so `flutter run --release` works.signingConfig signingConfigs.release// 关闭代码混淆minifyEnabled trueshrinkResources truendk {abiFilters "armeabi-v7a"abiFilters "armeabi"abiFilters "arm64-v8a"}}debug {signingConfig signingConfigs.debug}}//当在tools:node="remove"无法删除权限时使用,编译构建流程中,把这些权限删除project.afterEvaluate {project.android.applicationVariants.all { variant ->variant.outputs.each { output ->output.processResources.doFirst { pm ->String manifestPath = output.processResources.manifestFiledef manifestContent = file(manifestPath).getText()manifestContent = manifestContent.replace(' ', '')println("manifestContent:" + manifestContent)file(manifestPath).write(manifestContent)}}}}
}
4.使用:在需要初始化推送的页面调用JPushUtil.initJPush();
接下来是google play版极光推送
1.google上架普通版jpush会被拒,收到的邮件提示被拒的原因出在jpush sdk上,而我们在极光管方文档并不能找到相关的解决办法

2.找到极光sdk下载位置,当中有 Google Play 版本下载选项

3.下载Google Play 版本sdk前查看jpush_flutter: ^2.4.2库中sdk的版本,下载的sdk版本需要与flutter中引入的库中的sdk版本一致,因为极光sdk中的jpush、jcore有版本对应关系,经过测试不对应的版本无法接收到推送。(flutter库中的sdk版本可以在本地缓存文件中查看,圈中的是改动前,jpush_flutter: ^2.4.2库中的sdk版本)

4.将下载的sdk解压,复制libs中的jar包

将jar包放入 flutter plugin包 jpush_flutter-2.4.2的 android》libs文件夹下(没有libs文件夹就新建一个)

在jpush_flutter-2.4.2的 android 》build.gradle文件中修改配置
dependencies {implementation 'cn.jiguang.sdk:jpush:4.9.0'// implementation 'cn.jiguang.sdk:jcore:4.1.0'compile files('libs/jcore-android-4.1.0-google_play.jar')
}

由于将jpush和jcore包都改为Google版本国内IP无法接收到推送(测试中接收不到推送)所以只更改了jcore包的配置,如果只使用google play版可以两个包一起改。

修改后测试能够接收到推送(极光推送5.0会自动加载jcore jar包,所以为尝试这个版本怎么兼容)
5.打包送审,Google play通过。
jpush-android-4.9.0-google-play
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
