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设备上的实际表现。这样可以确保从开发到上线的全流程顺畅。

相关推荐
用户25430500960032 分钟前
go 指针接收者和值接收者的区别
后端
JackieLeee3 分钟前
云端业务本地化:告别宕机与弱网,拥抱良好体验——inline-grpc-sdk-go方案解析
后端
吴生43964 分钟前
What?原来Google Play 支持透传,被蒙蔽了这么多年
后端
幺九九九4 分钟前
【实操】k8s安装和初始化集群
后端
无限大65 分钟前
数据结构与算法入门 Day 0:程序世界的基石与密码
后端·算法·程序员
一介输生5 分钟前
Spring Boot 实现权限管理(下)
java·后端
这里有鱼汤8 分钟前
Python 列表不香了?聊聊 NumPy 为什么更快更强!
后端·python
GoGeekBaird9 分钟前
69天探索操作系统-第59天:容器化内部机制 - 深入探讨命名空间实现
后端·操作系统·github
顾言12 分钟前
Java 线程中断 Interrupted
java·后端
加瓦点灯14 分钟前
SQL语句是怎么被执行的?一条sql语句的幕后旅程
后端