【Java工具】之极光推送(九)

为了以后方便,特把极光推送方法记录下来。

  • 1、maven依赖
<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jpush-client</artifactId>
    <version>3.2.17</version>
</dependency>
  • 2、注册极光,获取密钥
private static final String JI_GUANG_URL = "https://www.jiguang.cn/](https://www.jiguang.cn/";
private static final String JI_GUANG_API = "https://docs.jiguang.cn/jpush/server/sdk/java_sdk/";
protected static final Logger LOG = LoggerFactory.getLogger(JpushUtils.class);
private static final String appKey ="你的appKey";
private static final String masterSecret = "你的masterSecret";
private static final ClientConfig clientConfig = ClientConfig.getInstance();
private static final JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig);
  • 3.推送全部用户
      推送平台是全部,角标数字为 5,通知声音为默认 "default",并且附加字段 from = "JPush"、content和message。消息内容是 message;ApnsProduction为true代表是生成环境,false是测试环境。
    /**
     * 推送全部用户
     * @param notification
     * @param message
     */
    public static boolean pushAll(String notification, String message) {
        boolean b = false;
        PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.all()).setAudience(Audience.all())
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder().setAlert(notification).setSound("default")
                                .setBadge(5)
                                .setContentAvailable(true).addExtra("from", "JPush").addExtra("content", message)
                                .build())
                        .addPlatformNotification(AndroidNotification.newBuilder().setAlert(notification).build())
                        .build())
                .setMessage(Message.content(message)).setOptions(Options.newBuilder().setApnsProduction(false).build())
                .build();
        try {
            PushResult result = jpushClient.sendPush(payload);
            b = true;
        } catch (APIConnectionException e) {
        } catch (APIRequestException e) {
        }
        return b;
    }
  • 4、根据别名进行推送
/**
     * 根据别名进行推送
     * @param notification
     * @param message  .setContentAvailable(true)
     */
    public static boolean pushSelected(String alias[], String notification, String message) {
        boolean b = false;
        PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.all()).setAudience(Audience.alias(alias))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder().setAlert(notification).setSound("default")
                                .setBadge(5)
                                .addExtra("1", "http://tms.tikinmedia.com/upload/deviceVersion")
                                .build())
                        .addPlatformNotification(AndroidNotification.newBuilder().setAlert(notification).build())
                        .build())
                //.setMessage(Message.content(message))
                .setOptions(Options.newBuilder().setApnsProduction(true).build()).build();
        try {
            PushResult result = jpushClient.sendPush(payload);
            System.out.println(result);
            b = true;
        } catch (APIConnectionException e) {
        } catch (APIRequestException e) {
        }
        return b;
    }
  • 5、添加自定义附加字段
    /**
     * 安卓与ios平台,通过别名推送
     * @param alias     别名
     * @param content   推送内容
     * @param key       拓展字段key值
     * @param value     拓展字段value
     * @return
     */
    public static boolean buildPushObject_all_alias_alert(String[] alias, String content,String key,String value) {
        boolean b = false;
        PushPayload payload =  PushPayload.newBuilder()
                .setPlatform(Platform.android_ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.newBuilder()
                        .setAlert(content)
                        .addPlatformNotification(AndroidNotification.newBuilder().addExtra(key,value)
                                .build())
                        .addPlatformNotification(IosNotification.newBuilder()
                                .setBadge(5)
                                .setSound("default").addExtra(key,value)
                                .build())
                        .build())
                .build();
    try {
            PushResult pushResult = jpushClient.sendPush(payload);
            //解析数据,0表示成功 
            //{"msg_id":3828060948763255,"sendno":180326298,"statusCode":0}
            System.out.println(pushResult);
        } catch (APIConnectionException e) {
            e.printStackTrace();
        } catch (APIRequestException e) {
            e.printStackTrace();
        }
          return b;
    }

  • 6、结语

迈开脚步,再长的路也不在话下;停滞不前,再短的路也难以到达。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 所选依赖: 工具类:一、 package com.xxx.core.util.push.enums; /** 配置...
    Y_LY阅读 1,909评论 0 2
  • 本文主要介绍对接对接极光推送,包括发送自定义消息等。需要的朋友可以参考一下。 1.springboot对接极光推送...
    owen_7815阅读 1,199评论 0 1
  • 应用场景:在我们的项目中我们用的是创建视频会议和预警消息通知推送这两种情况,首先创建视频会议和中途邀请人参加会议我...
    蛋皮皮652阅读 3,699评论 1 2
  • package com.donghui.oa.util; import cn.jiguang.common.Cli...
    Leslie_Lee阅读 615评论 0 0
  • 最近做了个极光推送的功能,一下是我对这个功能的一点理解; 首先要先介入极光的包,通过maven加载...
    FUJI0103阅读 3,439评论 0 0