美文网首页
极光推送 java

极光推送 java

作者: 做你后盾_c0d5 | 来源:发表于2018-11-06 19:36 被阅读0次

    mave依赖
    <dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jpush-client</artifactId>
    <version>3.3.7</version>
    </dependency>

    private static final String APP_KEY ="自己的APP_KEY";
    private static final String MASTER_SECRET = "自己的MASTER_SECRET ";
    
    
    /***
         * 通用推送方法
         * @param userId 用户ID
         * @param msg 消息
         */
    
        public String messagePush(Integer userId, String clienType, String msg, Map<String,String> map, Integer type){
            JPushClient jpushClient = new JPushClient(MASTER_SECRET,APP_KEY , null, ClientConfig.getInstance());
            PushPayload payload =null;
            try{
    
                if("1".equals(clienType)){
                    payload = buildPushObject_android_tag_alertWithTitle(userId+"",msg,map,type);
                    PushResult  result = jpushClient.sendPush(payload);
                    return result.statusCode+"";
                }
                if("2".equals(clienType)){
                    payload = buildPushObject_ios_tagAnd_alertWithExtrasAndMessage(userId+"",msg,map,type);
                    PushResult  result = jpushClient.sendPush(payload);
                    return result.statusCode+"";
                }
            }catch (Exception e){
                LOGGER.error(e.getMessage());
            }finally {
                jpushClient.close();
            }
    
            return "客户端不存在";
        }
    
    
    
     public PushPayload buildPushObject_android_tag_alertWithTitle(String userId,String msg,Map<String,String> map,Integer type) {
            map.put("alert",msg); // 消息
            map.put("title","标题"); // 标题
            JSONObject jsonObject = JSONObject.fromObject(map);
            PushPayload pushPayload = null;
            if(type.intValue()==0){
                pushPayload = PushPayload.newBuilder()
                        .setNotification(Notification.newBuilder().addPlatformNotification(
                                AndroidNotification.newBuilder()
                                .setAlert(msg)
                                .setTitle("间书")
                                .addExtras(map)
                                .build()
                        ).build())
                        .setOptions(Options.newBuilder().setApnsProduction(true).build())
                        .setPlatform(Platform.android()) // 发送Android
                        .setAudience(Audience.alias(userId)) // Audience.alias("userId") Audience.alias(userId+"")
                        /*.setMessage(Message.content(jsonObject.toString()))*/
                        .build();
            }else{
                pushPayload = PushPayload.newBuilder()
                        .setPlatform(Platform.android()) // 发送Android
                        .setAudience(Audience.alias(userId)) // Audience.alias("userId") Audience.alias(userId+"")
                       .setMessage(Message.content(jsonObject.toString()))
                        .build();
            }
            return pushPayload;
        }
    
        public  PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage(String userId,String msg,Map<String,String> map,Integer type) {
            map.put("alert",msg);
    
            JSONObject jsonObject = JSONObject.fromObject(map);
            PushPayload pushPayload = null;
            if(type.intValue()==0){
                pushPayload = PushPayload.newBuilder()
                        .setPlatform(Platform.ios())
                        .setAudience(Audience.alias(userId)) 
                        .setNotification(Notification.newBuilder()
                                 .addPlatformNotification(IosNotification.newBuilder()
                                         .setContentAvailable(true)
                                         .setAlert(msg)
                                         .setBadge(0) // 角标数
                                         .setSound("happy") // 通知声音
                                         .addExtras(map)
                                         .build())
                                 .build())
                        .setOptions(Options.newBuilder()
                                .setApnsProduction(false) // true-推送生产环境 false-推送开发环境(测试使用参数)
                                .build())
                        .build();
            }else{
                pushPayload = PushPayload.newBuilder()
                        .setPlatform(Platform.ios())
                        .setAudience(Audience.alias(userId)) 
                        .setMessage(Message.content(jsonObject.toString()))
                        .setOptions(Options.newBuilder()
                                .setApnsProduction(false) // true-推送生产环境 false-推送开发环境(测试使用参数)
                                .build())
                        .build();
            }
    
            return pushPayload;
        }
    
        /***
         * 更新绑定设备
         * @param registrationId
         * @param userId
         */
        public void updateDeviceTagAlias(String registrationId,Integer userId){
            JPushClient jpushClient = new JPushClient(MASTER_SECRET,APP_KEY , null, ClientConfig.getInstance());
            try{
                jpushClient.updateDeviceTagAlias(registrationId,userId.toString(),null,null);
            }catch (Exception e){
                LOGGER.error(e.getMessage());
            }finally {
                jpushClient.close();
            }
        }
    
        /***
         * 删除设备信息
         * @param usreId
         */
        public void deleteAlias(Integer usreId){
            JPushClient jpushClient = new JPushClient(MASTER_SECRET,APP_KEY , null, ClientConfig.getInstance());
            try{
                jpushClient.deleteAlias(usreId.toString(),null);
            }catch (Exception e){
                LOGGER.error(e.getMessage());
            }finally {
                jpushClient.close();
            }
        }
    
        /***
         * 根据设备 查信息
         * @param registrationId
         * @return
         */
        public String getDeviceTagAlias(String registrationId){
            JPushClient jpushClient = new JPushClient(MASTER_SECRET,APP_KEY , null, ClientConfig.getInstance());
            String pushPayload = null;
            try {
                pushPayload =  jpushClient.getDeviceTagAlias("设备").toString();
            }catch (Exception e){
                LOGGER.error(e.getMessage());
            }finally {
                jpushClient.close();
            }
            return pushPayload;
        }
    
    
    

    相关文章

      网友评论

          本文标题:极光推送 java

          本文链接:https://www.haomeiwen.com/subject/sicpxqtx.html