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

相关推荐
数据知道13 分钟前
Go基础:一文掌握Go语言泛型的使用
开发语言·后端·golang·go语言
楼田莉子43 分钟前
python学习:爬虫+项目测试
后端·爬虫·python·学习
阿挥的编程日记1 小时前
基于SpringBoot的高校(学生综合)服务平台的设计与实现
java·spring boot·后端·spring·mybatis
她说彩礼65万2 小时前
Asp.net core appsettings.json` 和 `appsettings.Development.json`文件区别
后端·json·asp.net
用户21411832636022 小时前
国产化算力实战:手把手教你在魔乐社区用华为昇腾 NPU 跑通模型推理
后端
IT_陈寒2 小时前
SpringBoot性能飞跃:5个关键优化让你的应用吞吐量提升300%
前端·人工智能·后端
M1A12 小时前
你的认知模式,决定了你的人生高度
后端
追逐时光者3 小时前
Everything替代工具,一款基于 .NET 开源免费、高效且用户友好文件搜索工具!
后端·.net
QX_hao3 小时前
【Go】--数据类型
开发语言·后端·golang
桦说编程3 小时前
线程池拒绝策略避坑:谨慎使用抛弃策略,可能导致系统卡死
java·后端