起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2109|回复: 3

[处理中3] 极光推送按别名不成功

[复制链接]

39

主题

168

帖子

421

积分

中级会员

Rank: 3Rank: 3

积分
421
QQ
发表于 2017-3-19 20:58:45 | 显示全部楼层 |阅读模式
按教程操作,不知道哪错了,按设备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)

39

主题

168

帖子

421

积分

中级会员

Rank: 3Rank: 3

积分
421
QQ
 楼主| 发表于 2017-3-19 23:07:35 | 显示全部楼层
var registrationId = userLocal.userLogin;
        //window.plugins.jPushPlugin.setAlias(registrationId);
        //window.plugins.jPushPlugin.setTagsWithAlias(tags, alias);
        window.plugins.jPushPlugin.setTagsWithAlias(registrationId,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);
                                 } // 请求成功后的回调方法
                        });

打了N次包,按别名可以了,按标签呢?还得继续测试中,有高手的教导下,省点时间少跳坑
  • 2017-03-19 22:56
  • 亲爱的用户13500000,您的订单已经支付完毕,商家正在配货中..
  • 别名
  • 0|0
  • 1|1
  • 0|0



  • 2017-03-19 22:51
  • 亲爱的用户,您的订单已经支付完毕,商家正在配货中..
  • Reg.ID
  • 0|0
  • 1|1
  • 0|0



回复 支持 反对

使用道具 举报

发表于 2017-3-20 13:27:35 | 显示全部楼层
sweetluo 发表于 2017-3-19 23:07
var registrationId = userLocal.userLogin;
        //window.plugins.jPushPlugin.setAlias(registration ...

极光推送的问题!只能参考极光推送的官方API文档
另外就是请看下极光推送插件中方法的定义:/Native/plugins/cn.jpush.phonegap.JPushPlugin/www/JPushPlugin.js

参考 别名的调用方式,调用标签的方法
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

39

主题

168

帖子

421

积分

中级会员

Rank: 3Rank: 3

积分
421
QQ
 楼主| 发表于 2017-3-20 14:19:47 | 显示全部楼层
看来一会解决不了这个问题,先放放吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-28 12:05 , Processed in 0.120750 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表