flutter集成极光推送google play版本

极光推送集成指南与iOS开发工具推荐

极光推送基础集成

  1. 在pubspec.yaml中引入库:jpush_flutter: ^2.4.2
  2. 创建极光推送工具类
dart 复制代码
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
    );
  }

  //设置tags
  static setTags(List<String> tags){
    JPush().setTags(tags);
  }

  //设置别名
  static setAlias(String alias){
    JPush().setAlias(alias);
  }

  //删除别名
  static deleteAlias(){
    JPush().deleteAlias();
  }

  //清空tags
  static cleanTags(){
    JPush().cleanTags();
  }

  //设置角标
  static setBadge(int badge){
    JPush().setBadge(badge);
  }
}
  1. 配置app下的build.gradle 在build.gradle的android>defaultConfig中增加配置manifestPlaceholders
groovy 复制代码
android {
    compileSdkVersion 33

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId ""
        minSdkVersion 20
        targetSdkVersion 31
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
        ndk{
            abiFilters 'armeabi-v7a','arm64-v8a'
        }

        manifestPlaceholders = [
                TENCENT_APP_ID: "",
                JPUSH_PKGNAME : "在极光推送配置的包名",
                JPUSH_APPKEY : "", // NOTE: JPush 上注册的包名对应的 Appkey.
                JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
                XIAOMI_APPID : "MI-appid",
                XIAOMI_APPKEY : "MI-appkey",
                OPPO_APPID : "OP-appid",
                OPPO_APPKEY : "OP-appkey",
                OPPO_APPSECRET : "OP-appsecert",
                VIVO_APPID : "",
                VIVO_APPKEY : "",
        ]
    }

    signingConfigs {
        release {
            storeFile file("ati.jks")
            storePassword ""
            keyAlias "ati"
            keyPassword ""
        }

        debug {
            storeFile file("ati.jks")
            storePassword ""
            keyAlias "ati"
            keyPassword ""
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            shrinkResources true
            ndk {
                abiFilters "armeabi-v7a"
                abiFilters "armeabi"
                abiFilters "arm64-v8a"
            }
        }

        debug {
            signingConfig signingConfigs.debug
        }
    }
}
  1. 使用:在需要初始化推送的页面调用JPushUtil.initJPush();

Google Play版极光推送特殊处理

  1. 找到极光SDK下载位置,选择Google Play版本下载
  2. 下载的SDK版本需要与flutter中引入的库中的SDK版本一致
  3. 将下载的SDK解压,复制libs中的jar包到jpush_flutter-2.4.2的android/libs文件夹下
  4. 修改jpush_flutter-2.4.2的android/build.gradle文件配置
groovy 复制代码
dependencies {
    implementation 'cn.jiguang.sdk:jpush:4.9.0'
    compile files('libs/jcore-android-4.1.0-google_play.jar')
}
  1. 对于极光推送5.0以上版本的特殊处理
groovy 复制代码
implementation('cn.jiguang.sdk:jpush:5.4.0') {
    exclude module: 'jcore'
}
compile files('libs/jcore-android-4.7.0-google_play.jar')

iOS开发辅助工具推荐

在iOS应用开发过程中,除了推送功能集成外,应用打包和上架也是重要环节。appuploader作为一款专业的iOS开发助手工具,可以帮助开发者:

  1. 简化证书和描述文件管理流程
  2. 提供一键打包功能
  3. 支持快速上传到App Store Connect
  4. 提供应用状态监控

与极光推送的集成类似,使用appuploader也能显著提升开发效率。特别是在需要频繁测试推送功能的场景下,快速打包和安装测试版本可以大大缩短开发周期。

建议开发者在完成极光推送集成后,使用appuploader进行打包测试,验证推送功能在iOS设备上的实际表现。这样可以确保从开发到上线的全流程顺畅。

相关推荐
Cosolar2 分钟前
AI Agent 的记忆战争:OpenClaw vs Hermes vs QwenPaw vs HiClaw,谁真正"记得住"?
人工智能·后端·面试
M ? A18 分钟前
VuReact:Vue转React的增量编译利器
前端·vue.js·后端·react.js·面试·开源·vureact
aircrushin32 分钟前
给宝宝办了个宴,朋友用trae做的工具帮了大忙
前端·后端
码上小翔哥37 分钟前
Jackson 配置深度解析
java·后端
程序员Sunday41 分钟前
爆肝万字!这应该是全网最全的 Codex 实战教程了
前端·后端·ai编程
aircrushin42 分钟前
朋友用trae搭建的工具,解决了旅行拍照共享的大事儿
前端·后端
星栈43 分钟前
把业务逻辑写成纯函数之后,我再也不想写 Service 层了
后端·开源
未秃头的程序猿43 分钟前
如何用 AI 写出符合规范的 Java 代码?我总结了 7 条有效建议
java·后端·ai编程
阿聪谈架构44 分钟前
第10章:Agent 记忆系统 —— 让 AI 真正"记住"你
人工智能·后端
木雷坞1 小时前
我把 AI Coding Agent 的 MCP 工具链放进容器里跑了一遍
后端