您好 这是我头一次使用博客来记录平时一些工作代码,同时也希望可以帮助别人。接触开发工作时间不长 大牛勿喷 不扯闲篇儿了 开撸。 首先需要登入极光推送官网注册账号获取AppKey,Master Secret **Utils工具类 到这里推送的核心部分已经完成 ,下面是我老大逼我读源码后我整理的 一些功能模块。 到这里已经基本结束现在来编写测试类。 推送成功显示如下极光推送官网也会有推送记录: 下面来测试绑定 测试结果jPush极光推送 测试demo以及绑定regid/标签/别名
推送Jpushdemo
依赖
首先导入Jpush依赖我这里使用的是jpush-3.4.2 <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.5</version> </dependency> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version>1.1.7</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> 代码
连接https://www.jiguang.cn
Config类来存放AppKey,Master Secretpublic class JPushConfig { public static String APP_KEY = "AppKey"; public static String MASTER_SECRET = "Master Secret"; } 重点来了 这个工具类就是来写你要给那部手机推送消息。里面涉及了 android/ios手机系统 标签别名 regid这里重点说下regid这个id是你手机的id 有这个id才能跟你的手机进行绑定 ,上官网下载一个android/ios端的JPush SDK demo **public class JPushUtil { //Android public static void jpushAndroid(Map<String, String> parm) { //创建JPushClient JPushClient jpushClient = new JPushClient(JPushConfig.MASTER_SECRET, JPushConfig.APP_KEY); //推送的关键,构造一个payload PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.android())//指定android平台的用户 .setAudience(Audience.all())//项目中的所有用户 .setAudience(Audience.alias(parm.get("alias")))//设置别名 .setAudience(Audience.tag(parm.get("tags").split("tag1")))//设置标签发送,群发 .setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户 .setNotification(Notification.android(parm.get("msg"), "这是title", parm)) //发送内容 .setOptions(Options.newBuilder().setApnsProduction(true).setTimeToLive(7200).build()) //指定开发环境 .setMessage(Message.content(parm.get("msg")))//自定义信息 .build(); try { PushResult pu = jpushClient.sendPush(payload); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } } //ios public static void jpushIOS(Map<String, String> parm) { //创建JPushClient JPushClient jpushClient = new JPushClient(JPushConfig.MASTER_SECRET, JPushConfig.APP_KEY); PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.ios())//ios平台的用户 .setAudience(Audience.all())//所有用户 .setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户 .setNotification(Notification.newBuilder() .addPlatformNotification(IosNotification.newBuilder() .setAlert(parm.get("msg")) .setBadge(+1) .setSound("happy")//提示音 .addExtras(parm) .build()) .build()) .setOptions(Options.newBuilder().setApnsProduction(false).build()) .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(); } } //All public static void jpushAll(Map<String, String> parm) { //创建JPushClient JPushClient jpushClient = new JPushClient(JPushConfig.MASTER_SECRET, JPushConfig.APP_KEY); //创建option PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.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(); } } }
绑定手机号/手机号解绑/判断手机号是否绑定 | 生成标签/删除更新标签 | 生成别名/删除别名public class clientServiceImpl { private static Logger LOG = LoggerFactory.getLogger(clientServiceImpl.class); private String regid = "" ; protected static JPushClient jPushClient = null ; public clientServiceImpl(String t){ regid=t; } /** * 声明jPushClient * @return */ public JPushClient getJPushClient(){ return new JPushClient(JPushConfig.MASTER_SECRET,JPushConfig.APP_KEY); } /** * * @param mobile * @return * regid和手机号进行关联 */ public boolean bindMobile(String mobile) { try { DefaultResult result = getJPushClient().bindMobile(regid, mobile); LOG.info("Got result " + result); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); LOG.info("HTTP Status: " + e.getStatus()); LOG.info("Error Code: " + e.getErrorCode()); LOG.info("Error Message: " + e.getErrorMessage()); LOG.info("Error Message: " + e.getErrorMessage()); }finally { getJPushClient().close(); } return false; } /** * * @param name * @return *生成别名 */ public boolean bindAlias(String name, HashSet<String> tagsToAdd) { try { DefaultResult defaultResult = getJPushClient().updateDeviceTagAlias(regid, name, tagsToAdd, new HashSet<String>(getJPushClient().getDeviceTagAlias(regid).tags)); LOG.info("Got result"+defaultResult); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); e.printStackTrace(); }finally { getJPushClient().close(); } return false; } /** * 生成标签 * @param name * @param tagsToAdd * @return */ public boolean bindTags(String name, HashSet<String> tagsToAdd){ try { DefaultResult result = getJPushClient().updateDeviceTagAlias(regid, name , new HashSet<String>(Collections.singleton((getJPushClient().getDeviceTagAlias(regid).alias))) , tagsToAdd); LOG.info("Got result"+result); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); e.printStackTrace(); }finally { getJPushClient().close(); } return false; } /** * 更新标签 * @param * @return */ public boolean changeTags(List<?> list) { for (int i = 0;i<list.size();i++){ try { DefaultResult defaultResult = getJPushClient().addRemoveDevicesFromTag( String.valueOf(list.get(i)) , Collections.singleton(regid) , null); LOG.info("Got result" + defaultResult); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); e.printStackTrace(); } } return false; } /** * 删除标签 */ public void clearTags() { try { DefaultResult defaultResult = getJPushClient().deleteTag(String.valueOf(getJPushClient().getDeviceTagAlias(regid).tags),regid); LOG.info("Got result"+defaultResult); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); LOG.error("Error response from JPush server. Should review and fix it. ", e); }finally { getJPushClient().close(); } } /** * 判断设备与别名的绑定关系 * @return */ public BooleanResult hasMobile() { BooleanResult deviceInTag = null; try { deviceInTag = getJPushClient().isDeviceInTag( String.valueOf(getJPushClient().getDeviceTagAlias(regid).alias), regid); LOG.info("Got result" + deviceInTag); return deviceInTag ; } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); }finally { getJPushClient().close(); } return deviceInTag ; } /** * 删除别名 * @param */ public void unbindAlias() { try { DefaultResult defaultResult = getJPushClient().updateDeviceTagAlias(regid, true, true); LOG.info("Got result"+defaultResult); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); e.printStackTrace(); }finally { getJPushClient().close(); } } /** * 解除绑定 */ public void unbindMobile() { DefaultResult result = null; try { result = getJPushClient().bindMobile(regid, null); LOG.info("Got result"+result); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); e.printStackTrace(); } } public HashMap<String,Object> dgetInfo() { HashMap<String,Object> map = new HashMap<>(); try { map.put("alias",getJPushClient().getDeviceTagAlias(regid).alias); map.put("tags",getJPushClient().getDeviceTagAlias(regid).tags); map.put("mobile",getJPushClient().isDeviceInTag( String.valueOf(getJPushClient().getDeviceTagAlias(regid).alias), regid)); LOG.info("alias"+" : "+map.get("alias")+" , "+"teges"+" : "+map.get("tags")+" , "+"mobile"+" : "+map.get("mobile")); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later. ", e); e.printStackTrace(); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); e.printStackTrace(); } return map; } }
推送模块测试 Map<String, String> parm = new HashMap<>(); parm.put("msg", "收到请联系管理员李洋"); parm.put("title", "title"); parm.put("alias","alias"); parm.put("tags","tags"); parm.put("id","regid"); JPushUtil.jpushAndroid(parm);


clientService.bindMobile("自己手机号"); //clientService.bindAlias("别名",set); //clientService.bindTags("标签",set); //clientService.clearTags(); //clientService.unbindAlias(); //clientService.changeTags(); //clientService.unbindMobile(); clientService.dgetInfo(); //clientService.hasMobile();

到这里全部结束 欢迎来讨论。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)