精华内容
下载资源
问答
  • 极光推送

    2020-01-03 10:11:47
    极光推送

    极光推送
    1.去极光推送官网创建用户和appkey
    2.引入pom文件

      		<dependency>
                <groupId>cn.jpush.api</groupId>
                <artifactId>jiguang-common</artifactId>
                <version>1.0.3</version>
            </dependency>
            <dependency>
                <groupId>cn.jpush.api</groupId>
                <artifactId>jpush-client</artifactId>
                <version>3.2.17</version>
            </dependency>
    

    3.编写推送的代码

    JPushClient jpushClient = new JPushClient(MASTERSECRET,APPKEY);
    
    package com.util;
    
    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.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 lombok.extern.slf4j.Slf4j;
    
    import java.util.List;
    
    /**
     * 极光推送工具包
     */
    @Slf4j
    public class JPushUtil {
    
        private final static Boolean ApnsProduction = true;//上线之后要改为true
    
        /**
         * 推送给设备标识参数的用户
         * @param aliasList 别名或别名组(这个地方也可是tag或registrationId的集合)
         * @param msg_content 消息内容
         * @param extrasParam 扩展字段
         * @return 0推送失败,1推送成功
         */
        public static int sendToList(JPushClient jPushClient, List<String> aliasList, String msg_content, String extraKey, String extrasParam, String notification_title ) {
            int result = 0;
            try {
                PushPayload pushPayload=buildPushObject(aliasList,msg_content,extraKey,extrasParam,notification_title);
                log.info("推送给设备标识参数的用户"+pushPayload);
                PushResult pushResult=jPushClient.sendPush(pushPayload);
                log.info("推送结果"+pushResult);
                if(pushResult.getResponseCode()==200){
                    result=1;
                }
            } catch (APIConnectionException e) {
                e.printStackTrace();
    
            } catch (APIRequestException e) {
                e.printStackTrace();
            }
    
            return result;
        }
        
        /**
         * 向所有平台单个或多个指定别名用户推送消息(这个地方也可是tag或registrationId的集合)
         * @param aliasList
         * @param msg_content
         * @param extrasParam
         * @return
         */
        private static PushPayload buildPushObject(List<String> aliasList,  String msg_content,String extraKey, String extrasParam,String notification_title) {
            log.info("----------向所有平台单个或多个指定别名用户推送消息中......");
            return PushPayload.newBuilder()
                    //指定要推送的平台,all代表当前应用配置了的所有平台,也可以传android等具体平台
                    .setPlatform(Platform.all())
                    //指定推送的接收对象,all代表所有人,也可以指定已经设置成功的tag或alias或该应应用客户端调用接口获取到的registration id
                    .setAudience(Audience.alias(aliasList))
                    //如果是tag就Audience.tag(),如果是registration id就 Audience.registrationId()
                    //jpush的通知,android的由jpush直接下发,iOS的由apns服务器下发,Winphone的由mpns下发
                    .setNotification(Notification.newBuilder()
                            //指定当前推送的android通知
                            .addPlatformNotification(AndroidNotification.newBuilder()
                                    .setAlert(msg_content)
                                    .setTitle(notification_title)
                                    //此字段为透传字段,不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value)
                                    .addExtra(extraKey,extrasParam)
                                    .build())
                            //指定当前推送的iOS通知
                            .addPlatformNotification(IosNotification.newBuilder()
                                    //传一个IosAlert对象,指定apns title、title、subtitle等
                                    .setAlert(msg_content)
                                    //直接传alert
                                    //此项是指定此推送的badge自动加1
                                    .incrBadge(1)
                                    //此字段的值default表示系统默认声音;传sound.caf表示此推送以项目里面打包的sound.caf声音来提醒,
                                    // 如果系统没有此音频则以系统默认声音提醒;此字段如果传空字符串,iOS9及以上的系统是无声音提醒,以下的系统是默认声音
                                    .setSound("default")
                                    //此字段为透传字段,不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value)
                                    .addExtra(extraKey,extrasParam)
                                    //此项说明此推送是一个background推送,想了解background看:http://docs.jpush.io/client/ios_tutorials/#ios-7-background-remote-notification
                                    //取消此注释,消息推送时ios将无法在锁屏情况接收
                                    // .setContentAvailable(true)
    
                                    .build())
                            .build())
                    //Platform指定了哪些平台就会像指定平台中符合推送条件的设备进行推送。 jpush的自定义消息,
                    // sdk默认不做任何处理,不会有通知提示。建议看文档http://docs.jpush.io/guideline/faq/的
                    // [通知与自定义消息有什么区别?]了解通知和自定义消息的区别
                    /*.setMessage(Message.newBuilder()
    
                            .setMsgContent(msg_content)
    
                            .setTitle(msg_title)
    
                            .addExtra("message extras key",extrasparam)
    
                            .build())*/
    
                    .setOptions(Options.newBuilder()
                            //此字段的值是用来指定本推送要推送的apns环境,false表示开发,true表示生产;对android和自定义消息无意义
                            .setApnsProduction(ApnsProduction)
                            //此字段是给开发者自己给推送编号,方便推送者分辨推送记录
                            .setSendno(1)
                            //此字段的值是用来指定本推送的离线保存时长,如果不传此字段则默认保存一天,最多指定保留十天;
                            .setTimeToLive(86400)
    
                            .build())
                    .build();
    
        }
    }
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,377
精华内容 2,150
关键字:

极光推送