极光推送maven与代码,无需修改,粘贴即用

2022-11-28 15:55:44 浏览数 (1)

maven:

代码语言:javascript复制
<!-- 极光推送 -->
<dependency>
   <groupId>cn.jpush.api</groupId>
   <artifactId>jpush-client</artifactId>
   <version>3.3.10</version>
</dependency>
<dependency>
   <groupId>cn.jpush.api</groupId>
   <artifactId>jiguang-common</artifactId>
   <version>1.1.4</version>
</dependency>
<dependency>
   <groupId>io.netty</groupId>
   <artifactId>netty-all</artifactId>
   <version>4.1.6.Final</version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.7.7</version>
</dependency>
<!--极光推送结束  -->

正式代码:

代码语言:javascript复制
import java.util.HashMap;
import java.util.Map;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


import cn.jiguang.common.ClientConfig;
import cn.jiguang.common.TimeUnit;
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.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 cn.jpush.api.push.model.notification.WinphoneNotification;
import cn.jpush.api.report.ReceivedsResult;
import cn.jpush.api.report.ReceivedsResult.Received;
import cn.jpush.api.report.UsersResult;

public class tuisong {
          protected static final Logger log = LoggerFactory.getLogger(tuisong.class);
        
          // demo App defined in resources/jpush-api.conf
          private static final String APPKEY = "58854e6e9763f66fd3d3d245";
          private static final String MASTERSECRET = "f7935b875f2eb06fb904f9d8";
          public static JPushClient jpushClient = null;
         
        
          /**
   * 推送通知接口
   * @  设备标识
   * @  tag数组
   * @  推送标题
   * @  推送类型
   * @  推送内容
   */
          public static void main(String[] args) {
  sendPushNotice("160a3797c870b06d4e0", null, "标题", "类型", "明凯推送消息测试","content");
//  sendPushNotice(null, null, "标题", "类型", "测试alert","content");
}
 
         
          public static void sendPushNotice(String registrationId, String[] tags, String title, String btype,String alert, String content) {
    jpushClient = new JPushClient(MASTERSECRET, APPKEY);
    PushPayload payload = null;
    // 生成推送的内容,这里我们先测试全部推送
    // 通知提示信息
    if (content != null) {
      Map<String, String> map = new HashMap<String, String>();
      map.put("btype", btype);
      // 根据别名推送
      if (registrationId != null && tags == null) {
        payload = buldPushObject_all_all_alias(registrationId, title,alert, content, map);
      } else if (registrationId == null && tags != null) { // 根据tag[]推送
        payload = buldPushObject_all_all_tag(tags, title,alert, content, map);
      } else if (registrationId != null && tags != null) { // 别名和tags[] 推送通知
        payload = buldPushObject_all_all_aliasAndTag(registrationId, tags, title,alert, content, map);
      } else if (registrationId == null && tags == null) {
        payload = buldPushObject_all_all(title,alert, content, map);
      }
    } else {
      log.info("No notification - "   content);
    }
    try {
      System.out.println(payload.toString());
      PushResult result = jpushClient.sendPush(payload);
      System.out.println("推送结果:" result.getResponseCode());
      log.info("Got result - "   result);
    } catch (APIConnectionException e) {
      log.error("Connection error. Should retry later. ", e);
    } catch (APIRequestException e) {
      log.error("Error response from JPush server. Should review and fix it. ", e);
      log.info("HTTP Status: "   e.getStatus());
      log.info("Error Code: "   e.getErrorCode());
      log.info("Error Message: "   e.getErrorMessage());
      log.info("Msg ID: "   e.getMsgId());
    }
  }
            
              /**
       * 推送自定义消息接口.根据别名修改标签(tag)
       * @param alias 别名
       * @param content 推送内容
       */
              public static void sendPushMessage(String alias, String content) {
    jpushClient = new JPushClient(MASTERSECRET, APPKEY);
    PushPayload payload = null;
    // For push, all you need do is to build PushPayload object.
    // PushPayload payload = buildPushObject_all_all_alert();
    // 判断用户别名和tag不为空的情况下才推送修改标签(tag)
    if (content != null && alias != null) {
      payload = PushPayload.newBuilder()
          .setAudience(Audience.alias(alias))
          .setPlatform(Platform.all())
          .setMessage(Message.content(content)).build();
    } else {
      log.info("No notification - "   content);
    }
    try {
      System.out.println(payload.toString());
      PushResult result = jpushClient.sendPush(payload);
      System.out.println(result   "................................");
      log.info("Got result - "   result);
    } catch (APIConnectionException e) {
      log.error("Connection error. Should retry later. ", e);
    } catch (APIRequestException e) {
      log.error("Error response from JPush server. Should review and fix it. ", e);
      log.info("HTTP Status: "   e.getStatus());
      log.info("Error Code: "   e.getErrorCode());
      log.info("Error Message: "   e.getErrorMessage());
      log.info("Msg ID: "   e.getMsgId());
    }
  }
            
              /**
       * 查询记录推送成功条数
       * @param mid
       */
              public static void countPush(String mid) {
    jpushClient = new JPushClient(MASTERSECRET, APPKEY);
    PushPayload payload = null;
    try {
      ReceivedsResult result = jpushClient.getReportReceiveds(mid);
      Received received = result.received_list.get(0);
      System.out.println("android_received:"   received.android_received
                                "nios:"   received.ios_apns_sent);
      log.debug("Got result - "   result);
    } catch (APIConnectionException e) {
      // Connection error, should retry later
      log.error("Connection error, should retry later", e);
    } catch (APIRequestException e) {
      // Should review the error, and fix the request
      log.error("Should review the error, and fix the request", e);
      log.info("HTTP Status: "   e.getStatus());
      log.info("Error Code: "   e.getErrorCode());
      log.info("Error Message: "   e.getErrorMessage());
    }
  }
            
              /**
       * 统计用户数据。需要vip用户才能访问
       */
              public static void getReportUser() {
    jpushClient = new JPushClient(MASTERSECRET, APPKEY);
    PushPayload payload = null;
    try {
      UsersResult result = jpushClient.getReportUsers(TimeUnit.DAY, "2015-04-28", 8);
      // Received received =result
      // System.out.println("android_received:" received.android_received "nios:" received.ios_apns_sent);
      log.debug("Got result - "   result);
    } catch (APIConnectionException e) {
      // Connection error, should retry later
      log.error("Connection error, should retry later", e);
    } catch (APIRequestException e) {
      // Should review the error, and fix the request
      log.error("Should review the error, and fix the request", e);
      log.info("HTTP Status: "   e.getStatus());
      log.info("Error Code: "   e.getErrorCode());
      log.info("Error Message: "   e.getErrorMessage());
    }
  }
            
              /**
       * 根据别名通知推送
       * @  别名
       * @ alert 推送内容
       * @return
       */
              public static PushPayload buldPushObject_all_all_alias(String registrationId, String title,String alert, String content, Map<String, String> map) {
    return PushPayload
        .newBuilder()
        .setPlatform(Platform.all())
        .setAudience(Audience.registrationId(registrationId))
        .setNotification(
                            Notification
                                .newBuilder()
                .addPlatformNotification(
                                    IosNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .addPlatformNotification(
                                    AndroidNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .setTitle(title).addExtras(map)
                        .build())
                .addPlatformNotification(
                                    WinphoneNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .build()).build();
  }
            
              /**
       * 根据tag通知推送
       * @  别名
       * @ alert 推送内容
       * @return
       */
              public static PushPayload buldPushObject_all_all_tag(String[] tags, String title,String alert, String content, Map<String, String> map) {
    return PushPayload
        .newBuilder()
        .setPlatform(Platform.all())
        .setAudience(Audience.tag(tags))
        .setNotification(
                            Notification
                                .newBuilder()
                .addPlatformNotification(
                                    IosNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .addPlatformNotification(
                                    AndroidNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .setTitle(title).addExtras(map)
                        .build())
                .addPlatformNotification(
                                    WinphoneNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .build()).build();
  }
            
              /**
       * 根据tag通知推送
       * @ alias 别名
       * @ alert 推送内容
       * @return
       */
              public static PushPayload buldPushObject_all_all_aliasAndTag(String registrationId, String[] tags,String alert, String title, String content, Map<String, String> map) {
    return PushPayload
        .newBuilder()
        .setPlatform(Platform.all())
        .setAudience(Audience.registrationId(registrationId))
        .setAudience(Audience.tag(tags))
        .setNotification(
                            Notification
                                .newBuilder()
                .addPlatformNotification(
                                    IosNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .addPlatformNotification(
                                    AndroidNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .setTitle(title).addExtras(map)
                        .build())
                .addPlatformNotification(
                                    WinphoneNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .build()).build();
  }
            
              /**
       * 根据通知推送
       * @ alias 别名
       * @ alert 推送内容
       * @return
       */
              public static PushPayload buldPushObject_all_all(String title,String alert, String content, Map<String, String> map) {
    return PushPayload
        .newBuilder()
        .setPlatform(Platform.all())
        .setAudience(Audience.all())
        .setNotification(
                            Notification
                                .newBuilder()
                .addPlatformNotification(
                                    IosNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .addPlatformNotification(
                                    AndroidNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .setTitle(title).addExtras(map)
                        .build())
                .addPlatformNotification(
                                    WinphoneNotification.newBuilder()
                                        .setAlert(alert)
                        .addExtra("content", content)
                        .addExtras(map).build())
                .build()).build();
  }
            
}

0 人点赞