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

相关推荐
小鱼人爱编程44 分钟前
Java基石--反射让你直捣黄龙
前端·spring boot·后端
hqxstudying1 小时前
J2EE模式---服务层模式
java·数据库·后端·spring·oracle·java-ee
GM_8281 小时前
【最新最完整】SpringAI-1.0.0开发MCP Server,搭建MCP Client 实战笔记(进阶+详细+完整代码)
java·后端·ai编程·springai·mcp
程序员爱钓鱼1 小时前
Go语言实战案例-滑动窗口最大值
后端·google·go
Victor3562 小时前
MySQL(163) 如何理解MySQL的隔离级别?
后端
Victor3562 小时前
MySQL(164)如何设置MySQL的隔离级别?
后端
代码老y3 小时前
ASP.NET Core 高并发万字攻防战:架构设计、性能优化与生产实践
后端·性能优化·asp.net
武子康8 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
舒一笑9 小时前
我的开源项目-PandaCoder迎来史诗级大更新啦
后端·程序员·intellij idea
@昵称不存在10 小时前
Flask input 和datalist结合
后端·python·flask