• JAVA集成JPush


    • 本篇集成为web项目手动集成JPush

    一、获取AppKey、Master Secret

    https://docs.jiguang.cn
    成为极光用户创建一个应用拿到(AppKey、Master Secret),官网上有很详细的教程

    二、官网下载JAVA SDK

    https://docs.jiguang.cn//jpush/resources/
    image.png

    三、集成

    • 下载后的SDK包中有相关jar包
      image.png
    • 将jar包复制到项目lib中
      image.png
    • 在这里还需要填加一个jar包,否则后面推送消息时会出现json解析错误(小编泪奔~~~)
      image.png
    • 童鞋们可通过maven下载
     <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3</version>
     </dependency>
    

    到这里就集成完毕了,下面看代码

    JAVA代码

    package pms.schedul;
    
    import java.util.Map;
    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.Message;
    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;
    
    public class JiguangPush {
        //从官网获取的APP_KEY 与 MASTER_SECRET 
    	private static String APP_KEY = "fe78b87efa0364460541388b";
    	private static String MASTER_SECRET = "048732da19dc885ee469553f";
    
    	//极光推送>>Android
    	//parm 参数:registrationId设备唯一标识  title推送标题  msg推送消息体
    	public static void jpushAndroid_registrationId(Map<String, String> parm) {
    		//创建JPushClient(极光推送的实例)
    		JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
    		//推送的关键,构造一个payload 
    		PushPayload payload = PushPayload.newBuilder()
    				.setPlatform(Platform.android())//指定android平台的用户
    				.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
    				.setNotification(Notification.android(parm.get("msg"), parm.get("title"), parm))
    				//发送内容
    				.setOptions(Options.newBuilder().setApnsProduction(false).build())
    				//这里是指定开发环境,不用设置也没关系
    				.setMessage(Message.content(parm.get("msg")))//自定义信息
    				.build();
     
    		try {
    			PushResult pu = jpushClient.sendPush(payload);  
    		} catch (APIConnectionException e) {
    			e.printStackTrace();
    		} catch (APIRequestException e) {
    			e.printStackTrace();
    		}    
    	}
    	
    	//极光推送>>All所有平台
    	//parm 参数:registrationId设备唯一标识   msg推送消息体
    	public static void jpushAll(Map<String, String> parm) {
    		//创建JPushClient
    		JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
    		//创建option
    		PushPayload payload = PushPayload.newBuilder()
    				.setPlatform(Platform.all())  //所有平台的用户
    				//.setAudience(Audience.all())//你项目中的所有用户
    				.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
    				.setNotification(Notification.newBuilder()
    						.addPlatformNotification(IosNotification.newBuilder() //发送ios
    								.setAlert(parm.get("msg")) //消息体
    								.setBadge(+1)
    								.setSound("happy") //ios提示音
    								.addExtras(parm) //附加参数
    								.build())
    						.addPlatformNotification(AndroidNotification.newBuilder() //发送android
    								.addExtras(parm) //附加参数
    								.setAlert(parm.get("msg")) //消息体
    								.build())
    						.build())
    				.setOptions(Options.newBuilder().setApnsProduction(true).build())//指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)
    				.setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
    				.build();
    		try {
    			PushResult pu = jpushClient.sendPush(payload);
    			System.out.println(pu.toString());
    		} catch (APIConnectionException e) {
    			e.printStackTrace();
    		} catch (APIRequestException e) {
    			e.printStackTrace();
    		}    
    	}
    	
    }
    
    
    • 如有错误请先核实APP_KEY 与MASTER_SECRET

    推送实例

    @Test
    public void pushtest() {
    	//自定义推送参数
    	Map<String, String> parm = new HashMap<String, String>();
    	//这里的id是,移动端集成极光并登陆后,极光用户的rid
    	parm.put("id", "140fe1da9ef42763ee7");
    	parm.put("title", "厉害哟!");
    	//设置提示信息,内容是文章标题
    	parm.put("msg","极光集成成功!");
    	JiguangPush.jpushAndroid_registrationId(parm);
    }
    
    • 测试运行一波
      image.png

    完美~~~

  • 相关阅读:
    php中模拟多继承如何实现
    js进阶 12-4 jquery键盘事件如何使用
    php课程 3-12 带默认参数的函数怎么写
    android_线
    Cocos2d-x 文本渲染
    一张地图告诉你,只JavaScript不够!
    python 导入库问题
    Cocos2d-X字体
    R语言做文本挖掘 Part5情感分析
    Java存储区域——JVM札记&lt;一个&gt;
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/11414823.html
Copyright © 2020-2023  润新知