|
1.前端请求: params2 = {'className':className ,
'stuName' : 'stuName',
'flag' : '2' //接小朋友
};
Baas.sendRequest({
"url" : "/concierge/concierge", // 请求地址
"action" : "pushTea", // action
"params" : params2, // action对应的参数
"success" : function(data){
Baas.sendRequest({
"method" : "post",
"url" : "/concierge/concierge",
"action" : "push",
"params" : {
alias: data.teacherId//这里写你指定的别名
}
});
2.后台处理
static{
InputStream configFile = Push.class.getResourceAsStream("jpush.config.xml");
try{
SAXReader reader = new SAXReader();
Document doc = reader.read(configFile);
Element config = doc.getRootElement();
appKey = config.elementTextTrim("appKey");
masterSecret = config.elementTextTrim("masterSecret");
apnsProduction = (config.elementTextTrim("apnsProduction").equals("true"))?true:false;
}catch(Exception e){
e.printStackTrace();
}
}
public static JSONObject push(JSONObject params, ActionContext context){
String alias = params.getString("alias");
try {
sendPushMessage(alias, appKey, masterSecret);
} catch (APIConnectionException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (APIRequestException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
// pushMessage(msgTitle,msgContent,alias);
return null;
}
public static ScheduleResult sendPushMessage(String alias, String key, String secret) throws APIConnectionException, APIRequestException{
ClientConfig config = ClientConfig.getInstance();
HttpProxy proxy = null;
if (useProxy) {
proxy = new HttpProxy("http-proxy.system", 3128);
}
jpushClient = new JPushClient(masterSecret, appKey, 1);
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.alias(alias))
.setNotification(Notification.alert("请到收发室.."))
.build();
payload.resetOptionsTimeToLive(86400);
payload.resetOptionsApnsProduction(apnsProduction);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar nowTime = Calendar.getInstance();
nowTime.add(Calendar.MINUTE, 1);
String scheduleTime =sdf.format(nowTime.getTime());
ScheduleResult result = jpushClient.createSingleSchedule(UUID.randomUUID().toString().replaceAll("-", ""), scheduleTime, payload);
return result;
}
①这样写没有实现推送,但是在平台端推送可以接收。②推送端和接收端打包方式一样吗?都需要打包appKey并且在最后添加代理服务器的地址吗?
|
|