栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring boot 集成 极光推送

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring boot 集成 极光推送

Spring boot 集成 极光推送 1. 注册极光推送账号

在官网首页注册登录

在我的图标下面,点击 服务中心 进入 找到开发者平台 进入

进入开发者应用运营平台

2. 创建应用

填写应用名称 点击确认

点击下一步

设置应用包名,并点击下一步

点击下载推送demo,安装在手机上

3. 获取应用的AppKey 和 Master Secret

在设置里面,找到对应app的 appkey 和 Master Secret

4. 创建springboot应用

在idea中创建Springboot应用,xml文件如图所示



   4.0.0
   
      org.springframework.boot
      spring-boot-starter-parent
      2.5.6
       
   
   com.lyl.demo
   jiguang_demo
   0.0.1-SNAPSHOT
   jiguang_demo
   Demo project for Spring Boot
   
      1.8
   
   

      
      
         cn.jpush.api
         jpush-client
         3.4.8
      

      
         org.springframework.boot
         spring-boot-starter-web
      

      
         org.projectlombok
         lombok
         true
      
      
         org.springframework.boot
         spring-boot-starter-test
         test
      
   

   
      
         
            org.springframework.boot
            spring-boot-maven-plugin
            
               
                  
                     org.projectlombok
                     lombok
                  
               
            
         
      
   


5. 导入工具类

APP_KEY 和 MASTER_SECRET 替换成自己的

package com.lyl.demo.jiguang_demo.utils;

import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
import cn.jpush.api.push.model.Options;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
import lombok.extern.slf4j.Slf4j;

import java.util.Collection;


@Slf4j
public class PushUtils {
    protected static final String APP_KEY = "app-key";
    protected static final String MASTER_SECRET = "MASTER_SECRET";
    public static final JPushClient PUSH_CLIENT = new JPushClient(MASTER_SECRET, APP_KEY);

    
    public static PushResult push(Platform platform, Audience audience, Notification notification) {
        PushPayload pushPayload = new PushPayload.Builder()
                .setPlatform(platform)
                .setAudience(audience)
                .setNotification(notification)
                .setOptions(Options.newBuilder()
                        .setApnsProduction(true)
                        .build())
                .build();
        PushResult pushResult = null;
        try {
            pushResult = PUSH_CLIENT.sendPush(pushPayload);
        } catch (APIConnectionException | APIRequestException e) {
            e.printStackTrace();
        }
        return pushResult;
    }


    
    public static PushResult pushMsg(Platform platform, Audience audience, Message message) {
        PushPayload pushPayload = new PushPayload.Builder()
                .setPlatform(platform)
                .setAudience(audience)
                .setMessage(message)
                .setOptions(Options.newBuilder()
                        .setApnsProduction(true)
                        .build())
                .build();
        PushResult pushResult = null;
        try {
            pushResult = PUSH_CLIENT.sendPush(pushPayload);
        } catch (APIConnectionException | APIRequestException e) {
            e.printStackTrace();
        }
        return pushResult;
    }

    
    public static PushResult pushMsgByAlias(Collection aliases, String msg) {
        return pushMsg(Platform.all(), Audience.alias(aliases), Message.content(msg));
    }

    
    public static PushResult pushAndroidMsgByAlias(Collection aliases, String msg) {
        return pushMsg(Platform.android(), Audience.alias(aliases), Message.content(msg));
    }

    
    public static PushResult pushIOSMsgByAlias(Collection aliases, String msg) {
        return pushMsg(Platform.ios(), Audience.alias(aliases), Message.content(msg));
    }

    
    public static PushResult pushMsg(Platform platform, Audience audience, String msg) {
        return pushMsg(platform, audience, Message.content(msg));
    }

    
    public static PushResult pushMsg(String msg) {
        return pushMsg(Platform.all(), Audience.all(), Message.content(msg));
    }

    
    public static PushResult pushNotification(String noticeMsg) {
        return push(Platform.all(), Audience.all(), Notification.alert(noticeMsg));
    }
}
6. 测试

编写controller

@PostMapping("/pushMsgByAlias")
public Result pushMsgByAlias(@NotBlank String alias, @NotBlank String msg){
    PushResult pushResult = PushUtils.pushMsgByAlias(Arrays.asList(alias.split(",")), msg);
    return Result.success(pushResult);
}


@PostMapping("/pushMsgByIds")
public Result pushMsgByIds(@NotBlank String ids, @NotBlank String msg){
    PushResult pushResult = PushUtils.pushMsg(Platform.all(), Audience.registrationId(ids.split(",")), msg);
    return Result.success(pushResult);
}
7. 测试

打开postMan ,测试

8. 注意

推送是有限制的,通知一天只有十条,而消息是 200万次/天

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459661.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号