天天看點

java中關于極光推送手機端的應用

調用代碼

首先需要pom中需要引用的jar包

cn.jpush.api

jpush-client

3.2.17

cn.jpush.api

jiguang-common

1.0.3

密匙需要在極光推送系統中注冊才可生成

application.properties

中添加極光推送中生成的密匙

#極光推送mastersecret

jpush_mastersecret=a185d3de3982cb74481a09ea

#極光推送appkey

jpush_appkey=4ea658c843ed21fc3432dd63

推送實作類

package com.netbox.nbplatform.subsystem.netbar.NoticePush.service;

import cn.jiguang.common.ClientConfig;

import cn.jiguang.common.ServiceHelper;

import cn.jiguang.common.connection.NativeHttpClient;

import cn.jiguang.common.resp.APIConnectionException;

import cn.jiguang.common.resp.APIRequestException;

import cn.jpush.api.JPushClient;

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.Notification;

import com.netbox.nbplatform.subsystem.netbar.NoticePush.entity.vo.JPushMsgVo;

import com.netbox.nbplatform.subsystem.netbar.NoticePush.entity.vo.NoticePushVo;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.PropertySource;

import org.springframework.stereotype.Service;

import java.util.ArrayList;

import java.util.List;

@Service

@PropertySource(value = “application.properties”, ignoreResourceNotFound = true)

public class NoticePushServiceImpl{

@Value("${jpush_appkey}")

private String APP_KEY;

@Value("${jpush_mastersecret}")

private String MASTER_SECRET;

private boolean jPushPersonalMsg(List msg) {

ClientConfig clientConfig = ClientConfig.getInstance();

JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null,

clientConfig);

String authCode = ServiceHelper.getBasicAuthorization(APP_KEY,

MASTER_SECRET);

NativeHttpClient httpClient = new NativeHttpClient(authCode, null,

clientConfig);

jpushClient.getPushClient().setHttpClient(httpClient);

try {

// 拼接推送的資料

PushPayload payload = buildPushObject_android_alias_alertWithTitle(msg);

// 調用推送服務

jpushClient.sendPush(payload);

return true;

} catch (APIConnectionException e) {

// log.error(“極光推送–>個人消息推送:” + msg.getDepartmentID() + “使用者推送報錯”, e);

} catch (APIRequestException e) {

// log.error(“極光推送–>個人消息推送:” + msg.getDepartmentID() + “使用者推送報錯”, e);

}

return false;

}

public PushPayload buildPushObject_android_alias_alertWithTitle(

List msg) {

List UserName=new ArrayList<>();

List Content=new ArrayList<>();

for(JPushMsgVo vo:msg){

UserName.add(vo.getUserName());

Content.add(vo.getContent());

}

return PushPayload.newBuilder()

// 設定推送接收的平台為所有平台

.setPlatform(Platform.all())

// 設定推送的組為該地區的所有使用者

// .setAudience(Audience.tag(msg.getUserName() + “”))

.setAudience(Audience.tag(UserName))

// 設定推送的内容為資料表中的消息

.setNotification(Notification.alert(Content)).build();

}

}

用到的dto:

package com.netbox.nbplatform.subsystem.netbar.NoticePush.entity.dto;

public class NoticePushDto {

private String StartTime;

private String EndTime;

private String SessionID;

private String CreateTime;

private Integer UserID;

private String AreaCode;

// 分頁參數

private Integer page;

private Integer rows;

private int startNum;

private int offSet;

public String getStartTime() {

return StartTime;

}

public void setStartTime(String startTime) {

StartTime = startTime;

}

public String getEndTime() {

return EndTime;

}

public void setEndTime(String endTime) {

EndTime = endTime;

}

public String getSessionID() {

return SessionID;

}

public void setSessionID(String sessionID) {

SessionID = sessionID;

}

public Integer getPage() {

return page;

}

public void setPage(Integer page) {

this.page = page;

}

public Integer getRows() {

return rows;

}

public void setRows(Integer rows) {

this.rows = rows;

}

public int getStartNum() {

return startNum;

}

public void setStartNum(int startNum) {

this.startNum = startNum;

}

public int getOffSet() {

return offSet;

}

public void setOffSet(int offSet) {

this.offSet = offSet;

}

public String getCreateTime() {

return CreateTime;

}

public void setCreateTime(String createTime) {

CreateTime = createTime;

}

public Integer getUserID() {

return UserID;

}

public void setUserID(Integer userID) {

UserID = userID;

}

public String getAreaCode() {

return AreaCode;

}

public void setAreaCode(String areaCode) {

AreaCode = areaCode;

}

}

用到的vo:

package com.netbox.nbplatform.subsystem.netbar.NoticePush.entity.vo;

private int messageType;

private Integer departmentID;

private String updateTime;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getContent() {

return Content;

}

public void setContent(String content) {

Content = content;

}

public int getMessageType() {

return messageType;

}

public void setMessageType(int messageType) {

this.messageType = messageType;

}

public String getRemark() {

return remark;

}

public void setRemark(String remark) {

this.remark = remark;

}

public String getUpdateTime() {

return updateTime;

}

public void setUpdateTime(String updateTime) {

this.updateTime = updateTime;

}

public Integer getDepartmentID() {

return departmentID;

}

public void setDepartmentID(Integer departmentID) {

this.departmentID = departmentID;

}

@Override

public String toString() {

return “JPushMsgVo [userName=” + userName + “, title=” + title

+ “, Content=” + Content + “, messageType=” + messageType

+ “, departmentID=” + departmentID + “, remark=” + remark

+ “, updateTime=” + updateTime + “]”;

}

}

package com.netbox.nbplatform.subsystem.netbar.NoticePush.entity.vo;

public class NoticePushVo {

private String GUID;

private String Title;

private String KeyWord;

private String Content;

private String CreateTime;

private String FlagName;

private String UpdateTime;

private String UpdateName;

private String Remark;

private Integer DepartmentID;

private String AreaCode;

private String UserName;

private String AreaTypeCode;

private String AreaName;

private String ParentCode;

private String Lon;

private String Lat;

public String getGUID() {

return GUID;

}

public void setGUID(String gUID) {

GUID = gUID;

}

public String getTitle() {

return Title;

}

public void setTitle(String title) {

Title = title;

}

public String getKeyWord() {

return KeyWord;

}

public void setKeyWord(String keyWord) {

KeyWord = keyWord;

}

public String getContent() {

return Content;

}

public void setContent(String content) {

Content = content;

}

public String getCreateTime() {

return CreateTime;

}

public void setCreateTime(String createTime) {

CreateTime = createTime;

}

public String getFlagName() {

return FlagName;

}

public void setFlagName(String flagName) {

FlagName = flagName;

}

public String getUpdateTime() {

return UpdateTime;

}

public void setUpdateTime(String updateTime) {

UpdateTime = updateTime;

}

public String getUpdateName() {

return UpdateName;

}

public void setUpdateName(String updateName) {

UpdateName = updateName;

}

public String getRemark() {

return Remark;

}

public void setRemark(String remark) {

Remark = remark;

}

public Integer getDepartmentID() {

return DepartmentID;

}

public void setDepartmentID(Integer departmentID) {

DepartmentID = departmentID;

}

public String getAreaCode() {

return AreaCode;

}

public void setAreaCode(String areaCode) {

AreaCode = areaCode;

}

public String getUserName() {

return UserName;

}

public void setUserName(String userName) {

UserName = userName;

}

public String getAreaTypeCode() {

return AreaTypeCode;

}

public void setAreaTypeCode(String areaTypeCode) {

AreaTypeCode = areaTypeCode;

}

public String getAreaName() {

return AreaName;

}

public void setAreaName(String areaName) {

AreaName = areaName;

}

public String getParentCode() {

return ParentCode;

}

public void setParentCode(String parentCode) {

ParentCode = parentCode;

}

public String getLon() {

return Lon;

}

public void setLon(String lon) {

Lon = lon;

}

public String getLat() {

return Lat;

}

public void setLat(String lat) {

Lat = lat;

}

}

在需要引用的類中

@Autowired

private NoticePushServiceImpl noticePushServiceImpl;

引用

可推送多條

隻需定義需要推送的内容和主題

//推送給業主消息

if(!netBarYearCheckDto.getApprovalStatus().equals(“380”)) {

NoticePushVo noticePush=new NoticePushVo();

String StatusFlagName="";

if(StatusFlag!=null&&StatusFlag.equals(“0”)){

StatusFlagName=“不通過”;

}else if(StatusFlag!=null&&StatusFlag.equals(“1”)){

StatusFlagName=“通過”;

}

String nameNotic="";

if(unitFlagName.getBindID()!=null&&!unitFlagName.getBindID().equals(“0”)){

nameNotic=userRoleAreaCodeUtils.getUserNameByUserID(unitFlagName.getBindID());

}else if (unitFlagName.getFlagName()!=null){

nameNotic=unitFlagName.getFlagName();

}else if (unitFlagName.getFlagName()==null&&unitFlagName.getUpdateName()!=null){

nameNotic=unitFlagName.getUpdateName();

}

noticePush.setUserName(nameNotic);

noticePush.setContent(netBarYearCheckDto.getUserName()

+mapApprovalStatusName.get(“ApprovalStatusName”).toString().replace(“待”,"")+StatusFlagName);

List noticePushs=new ArrayList<>();

noticePushs.add(noticePush);

noticePushServiceImpl.iteratorDataList(noticePushs);

}

繼續閱讀