按教程操作,不知道哪错了,按设备ID推送是成功的 1.在前端js中,调用corodva插件设置别名:window.plugins.jPushPlugin.setAlias(‘别名’); 2.访问baasServer的时候,参考外卖案例/UI2/takeout/index.w [size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
| [size=1em][size=1em]Baas.sendRequest({
[size=1em] "method" : "post",
[size=1em] "url" : "/jpush/jpush",
[size=1em] "action" : "push",
[size=1em] "params" : {
[size=1em] alias: Alias//这里写你指定的别名
[size=1em] }
[size=1em] });
|
3.在服务器端参考:/Baas/jpush/Push.java 实现,只需要把这行代码替换
.setAudience(Audience.registrationId(registrationId))
换成
.setAudience(Audience.alias(“别名”)) 前端把id换成别名的值传递到这个参数中! 给别名赋值即可! ================================= var registrationId = userLocal.userLogin; window.plugins.jPushPlugin.setAlias(registrationId); //jpushInstance.getRegistrationID().done(function(registrationId) { // alert(id); Baas.sendRequest({ "method" : "post", "url" : "/jpush/jpush", "action" : "pushalias", "params" : { registrationId : registrationId //alias: Alias//这里写你指定的别名 }, "success" : function(data){ alert(registrationId); } // 请求成功后的回调方法 }); //});
};
//推送给别名
public static JSONObject pushalias(JSONObject params, ActionContext context){
String registrationId = params.getString("registrationId");
try {
sendPushMessagealias(registrationId, appKey, masterSecret);
} catch (APIConnectionException e) {
e.printStackTrace();
throw new RuntimeException(e);
} catch (APIRequestException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return null;
}
public static ScheduleResult sendPushMessagealias(String registrationId, String key, String secret) throws APIConnectionException, APIRequestException{
ClientConfig config = ClientConfig.getInstance();
HttpProxy proxy = getProxy();
jpushClient = new JPushClient(secret, key, 3, proxy, config);
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.all())
//.setAudience(Audience.registrationId(registrationId)) //取自己设备的ID
.setAudience(Audience.alias(registrationId)) //使用别名作为ID
//.setAudience(Audience.alias(tags))
.setNotification(Notification.alert("亲爱的用户"+registrationId+",您的订单已经支付完毕,商家正在配货中.."))
.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);
nowTime.add(Calendar.HOUR, 1);
String scheduleTime =sdf.format(nowTime.getTime());
ScheduleResult result = jpushClient.createSingleSchedule(UUID.randomUUID().toString().replaceAll("-", ""), scheduleTime, payload);
return result;
}
报错:http: 500错误
三月 19, 2017 8:26:19 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
{}
at cn.jpush.api.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:232)
at cn.jpush.api.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:94)
at cn.jpush.api.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:81)
at cn.jpush.api.schedule.ScheduleClient.createSchedule(ScheduleClient.java:58)
at cn.jpush.api.JPushClient.createSingleSchedule(JPushClient.java:433)
at jpush.Push.sendPushMessagealias(Push.java:128)
at jpush.Push.pushalias(Push.java:99)
at jpush.Jpush__do.pushalias(Jpush__do.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.justep.baas.action.Engine.execAction(Unknown Source)
at com.justep.baas.action.Engine.execAction(Unknown Source)
at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
|