极光推送案例(服务端向客户端发送请求)

极光推送需要appkey和mastersecreter,登录极光官网自己之前注册过的账号登录即可获得,根据每个手机可以生成每个register_id,是一 一对应的关系,根据这些发送即可

https://docs.jiguang.cn/jpush/client/Android/android_api/#api_2

 极光推送是根据唯一的一个东西生成的,比如说根据手机号生成,安卓手机用户退出登录重新登录就会再生成一个registrationId,但是ios的话除非把app卸载重新下的时候会再生成一个新的registrantionId

极光推送文档https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/

别人复杂案例blog.csdn.net/lixuegen/article/details/46819769

public class App
{
    public static void main( String[] args )
    {
        //System.out.println( "Hello World!" );
        String appkey=" ";//是key
        String masterSecret=" ";//secret
        String registration_id=" ";//唯一标示设备的id
        PushPayload ppla=PayloadBuild.buildAndroidWinphonePayload(registration_id,"hello,Wth","I am not a title");
        JPushClient jPushClient = new JPushClient(masterSecret,appkey,3);
        try {
            jPushClient.sendPush(ppla);
        } catch (APIConnectionException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (APIRequestException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}

以上是直接给手机app推送消息的,以下是更复杂的推送,在推送消息里面有

PushPayload pushPayload= buildPushObject_all_registrationId_alertWithTitle(registrationId, text, type);
PushResult pushResult=jPushClient.sendPush(pushPayload);
if(pushResult.getResponseCode()==200){
成功
}


return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.registrationId(registrationId))
.setNotification(Notification.newBuilder()
// 指定当前推送的android通知
.addPlatformNotification(AndroidNotification.newBuilder()
.setAlert(text)
.addExtra("type", type)// 消息类型
.build())
// 指定当前推送的iOS通知
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(text)
.addExtra("type", type)
.build())
.build())
.setOptions(Options.newBuilder()
// 推送环境,false表示开发,true表示生产;对android和自定义消息无意义
.setApnsProduction(true)
.build())
.build();

以下为代码详解
class PayloadBuild{
    /*public static PushPayload buildPushAllPayload(String alert) {//构建一个推送所有平台,所有设备的推送对象
        return PushPayload.alertAll(alert);}*/

    public static PushPayload buildAndroidWinphonePayload(String registration_id,

            String alert,String title) {

                return PushPayload.newBuilder()

                        .setPlatform(Platform.android())//推送平台设置为安卓

                     //.setAudience(Audience.all())//推送给所有已经下载过app的设备
                     .setAudience(Audience.registrationId(registration_id))//推送给registration_id对应的设备
                       
//                        .setAudience(Audience.alias(alias.replace(".", "_")))//推送设备起别名

                        .setNotification(Notification.newBuilder()//设置通知

                             .setAlert(alert)//设置通知内容

                             .addPlatformNotification(AndroidNotification.newBuilder()

                                                      .setTitle(title).build()//设置通知标题
                              )

                            .build()
                          )

                        .build();

            }


}
class PayloadBuild1{
    /*public static PushPayload buildPushAllPayload(String alert) {//构建一个推送所有平台,所有设备的推送对象
        return PushPayload.alertAll(alert);}*/
    
    public static PushPayload buildAndroidWinphonePayload(String alias,
            
            String alert,String title) {
        
        return PushPayload.newBuilder()
                
                .setPlatform(Platform.android())//推送平台设置为安卓
                
                .setAudience(Audience.all())//推送设备起别名
                // .setAudience(Audience.registrationId(""))
                
//                        .setAudience(Audience.alias(alias.replace(".", "_")))//推送设备起别名
                
                .setNotification(Notification.newBuilder()//设置通知
                        
                        .setAlert(alert)//设置通知内容
                        
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                
                                .setTitle(title).build()//设置通知标题
                                )
                        
                        .build()
                        )
                
                .build();
        
    }
    
    
}

原文地址:https://www.cnblogs.com/wth21-1314/p/7300053.html