专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

java-极光推送教程

技术交流QQ群:422167709 想学习的朋友可以进入,各路IT大牛帮忙解决问题

一、准备工作:

1、访问极光推送官网:https://www.jiguang.cn/accounts/login/form

2、注册登陆,拿到appKey和masterSecret

3、创建一个应用,安卓需要自己配置自己的设备ios一样的,服务端加上访问前缀和前端相对应即可。

二、工具类直接测试推送是否成功。

 package com.hykj.common;

 import cn.jiguang.common.resp.APIConnectionException;
 import cn.jiguang.common.resp.APIRequestException;
 import cn.jpush.api.JPushClient;
 //import cn.jpush.api.common.resp.APIConnectionException;
 //import cn.jpush.api.common.resp.APIRequestException;
 import cn.jpush.api.push.PushResult;
 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.AndroidNotification;
 import cn.jpush.api.push.model.notification.IosNotification;
 import cn.jpush.api.push.model.notification.Notification;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;

 import com.fasterxml.jackson.databind.ser.std.StdKeySerializers.Default;

 import java.util.HashMap;
 import java.util.Map;

 /**
  * 
  * @Description:极光推送工具类
  * @author: fuzongle
  * @date:   2019年5月7日 下午9:55:02
  */
 @Controller
 @RequestMapping(value="/jpush")
 public class JPushClientUtil{

     private static final String appKey = ""; // 必填,例如466f7032ac604e02fb7bda89
     private static final String masterSecret = "";//必填,每个应用都对应一个masterSecret

     private static final String appKey2 = ""; // 必填,例如466f7032ac604e02fb7bda89
     private static final String masterSecret2 = "";//必填,每个应用都对应一个masterSecret

 /
     private static JPushClient jpush = null;
     public static final int MAX = Integer.MAX_VALUE;
     public static final int MIN = MAX / 2;
     /**
      * 保存离线的时长。秒为单位。最多支持10天(864000秒)。 
      * 0 表示该消息不保存离线。即:用户在线马上发出,当前不在线用户将不会收到此消息。
      * 此参数不设置则表示默认,默认为保存1天的离线消息(86400秒)。
      */
     private static long timeToLive = 60 * 60 * 24;
     public static void main(String[] args) {
         String msgTitle = "推送测试";
         String msgContent = "看到信息了么,看到就推送成功了!";
         //String tel_phone="18516779543";
         String tel_phone="15937016361";
         Map<String,String> extra = new HashMap<String, String>();
         extra.put("number","CO2017082811195687100");
         extra.put("type","money");
         push("JLY"+tel_phone,msgTitle,extra,0);
     /*    String title = "推送测试";    
         PushPayload payload = JPushClientUtil.buildPushObject_all_all_alert(title);  
         System.out.println("服务器返回数据:" + payload.toString());*/
     }
      /** 
      *     所有平台,所有设备,内容为 content 的通知 
      *  
      * @param content 
      * @return 
      */  
     public static PushPayload buildPushObject_all_all_alert(String content) {  
         return PushPayload.alertAll(content);  
     }  

     /**
      * 生成极光推送对象PushPayload(采用java SDK)
      * @param alias
      * @param alert
      * @return PushPayload
      */
     public static PushPayload buildPushObject_android_ios_alias_alert(String alias,String alert,
             Map<String,String> extra,int value,String sound){
         return PushPayload.newBuilder()
                 .setPlatform(Platform.android_ios())
                 .setAudience(Audience.alias(alias))
                 .setNotification(Notification.newBuilder()
                         .addPlatformNotification(AndroidNotification.newBuilder()
                                 .addExtras(extra)
                                 .setAlert(alert)
                                 .build())
                         .addPlatformNotification(IosNotification.newBuilder()
                                 .addExtras(extra)
                                 .setAlert(alert)
                                 .setBadge(value)
                                 .setSound(sound)
                                 .build())
                         .build())
                 .setOptions(Options.newBuilder()
                         .setApnsProduction(false)//true-推送生产环境 false-推送开发环境(测试使用参数)
                         .setTimeToLive(90)//消息在JPush服务器的失效时间(测试使用参数)
                         .build())
                 .build();
     }

     /**
      * 极光推送方法(采用java SDK)
      * @param alias
      * @param alert
      * @return PushResult
      */
     public static PushResult push(String alias, String alert, Map<String,String> extra,int type){
         PushResult pushResult = null;
         if (type==0){
             JPushClient jpushClient = new JPushClient(masterSecret, appKey,3);
             PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert,extra,1,"default");
             try {
                 pushResult =  jpushClient.sendPush(payload);
                 if(pushResult.isResultOK()){
                     System.out.println("ok");
                 }
             } catch (APIConnectionException e) {
                 e.printStackTrace();
                 return null;
             } catch (APIRequestException e) {
                 e.printStackTrace();
                 return null;
             }
         }else if (type==1){
             JPushClient jpushClient = new JPushClient(masterSecret2, appKey2,3);
             PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert,extra,1,"default");
             try {
                 pushResult =  jpushClient.sendPush(payload);
             } catch (APIConnectionException e) {
                 e.printStackTrace();
                 return null;
             } catch (APIRequestException e) {
                 e.printStackTrace();
                 return null;
             }
 //        }else if (type==2){
 //            JPushClient jpushClient = new JPushClient(masterSecret3, appKey3,3);
 //            PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert,extra);
 //            try {
 //                pushResult =  jpushClient.sendPush(payload);
 //            } catch (APIConnectionException e) {
 //                e.printStackTrace();
 //                return null;
 //            } catch (APIRequestException e) {
 //                e.printStackTrace();
 //                return null;
 //            }
 //        }
         }
         return  pushResult;

     }

     /**
      * 给多个人推送消息
      * @param list
      */
     /*public static void pushManyMessage(List<PageData> list){

         for(int i=0;i<list.size();i++){
             pushMessage(
                 list.get(i).get("msgTitle").toString(),
                 list.get(i).get("msgContent").toString(),
                 list.get(i).get("user_id").toString()
             );
         }

     }*/

     /**
      * 保持 sendNo 的唯一性是有必要的
      */
     public static int getRandomSendNo() {
         return (int) (MIN + Math.random() * (MAX - MIN));
     }

 }

文章永久链接:https://tech.souyunku.com/21847

未经允许不得转载:搜云库技术团队 » java-极光推送教程

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们