zoukankan      html  css  js  c++  java
  • 极光推送案例(服务端向客户端发送请求)

    极光推送需要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();
            
        }
        
        
    }

  • 相关阅读:
    当程序员的那些狗日日子
    程序员常犯的几个错误
    我没有帮你的义务,却有拒绝你的权力
    并发 并行 同步 异步 多线程的区别
    cookie的存取
    sqlserver 处理百万级以上的数据处理与优化
    为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
    详细解析 nginx uri 如何匹配 location 规则
    mysql innodb 从 ibd 文件恢复表数据
    mysql 从 frm 文件恢复 table 表结构的3种方法
  • 原文地址:https://www.cnblogs.com/wth21-1314/p/7300053.html
Copyright © 2011-2022 走看看