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

QQ登录

只需一步,快速开始

查看: 4412|回复: 11

[结贴] 根据注册时的手机号进行极光推送

  [复制链接]

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
发表于 2016-7-14 11:21:25 | 显示全部楼层 |阅读模式
商家注册的时候,将手机号保存到了数据库,并且保存到了localStorage。用户下单的时候能获取到附近商家的手机号。  现在问题是怎么根据获取到的手机号  给商家推送消息啊?

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-7-14 11:23:33 | 显示全部楼层
假设获取到商家的手机号是1888888888,我要将这个号码作为registrationId 进行推送可以实现吗

  1. Model.prototype.button1Click = function(event) {
  2.                 this.sendOrderPushMessage();
  3.         };

  4.         Model.prototype.sendOrderPushMessage = function() {
  5.                 var id = '1888888888';
  6.                 Baas.sendRequest({
  7.                         "method" : "post",
  8.                         "url" : "/jpush/jpush",
  9.                         "action" : "push",
  10.                         "anync" : false,
  11.                         "params" : {
  12.                                 registrationId : id
  13.                         },
  14.                         "success" : function(data) {
  15.                                 alert(111);
  16.                         } // 请求成功后的回调方法
  17.                 });
  18.         };
复制代码
qq:7953899
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-7-14 12:23:56 | 显示全部楼层
  1. var registrationId =  this.comp("inputMobile").val();
  2.          window.plugins.jPushPlugin.setAlias(registrationId);
复制代码

登录注册的时候加了 这句。并且将
  1. /Baas/jpush/Push.java 把这行代码替换
  2. .setAudience(Audience.registrationId(registrationId))
  3. 换成
  4. .setAudience(Audience.alias(registrationId))
复制代码


这样貌似成功了。 不知道还需要改别的地方吗?
qq:7953899
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-7-14 16:15:56 | 显示全部楼层
  1. setTimeout(function() {
  2.         var distance = 0.008983;
  3.         var a1 = (Number(curLat) - Number(distance)).toFixed(6);
  4.         var a2 = (Number(curLat) + Number(distance)).toFixed(6);
  5.         var b1 = (Number(curLng) - Number(distance)).toFixed(6);
  6.         var b2 = (Number(curLng) + Number(distance)).toFixed(6);

  7.         // 过滤出1公里范围内的商家
  8.         merchantData.setFilter("filter1", "curLat >= " + a1 + " and curLat <= " + a2 + " and curLng >= " + b1 + " and curLng <= " + b2 + " ");
  9.         merchantData.refreshData();

  10.         // 遍历获取商家电话
  11.         var names = [];
  12.         merchantData.eachAll(function(param) {
  13.                 names.push(param.row.val('telephone'));
  14.         });
  15.         alert(names);

  16.         // 给1公里范围内的商家进行推送消息
  17.         Baas.sendRequest({
  18.                 "method" : "post",
  19.                 "url" : "/hy/jpush",
  20.                 "action" : "push",
  21.                 "anync" : false,
  22.                 "params" : {
  23.                         registrationId : names
  24.                 },
  25.                 "success" : function(data) {
  26.                         alert(111);
  27.                 } // 请求成功后的回调方法
  28.         });
  29. }, 2000);
复制代码
这样传过的registrationId 的值如图,是过滤出来的符合条件的多个电话号码,现在我想给这几个号码推送消息该怎么做啊? 直接传过去不行会报错
4E6.tmp.jpg
qq:7953899
回复 支持 反对

使用道具 举报

发表于 2016-7-15 10:23:07 | 显示全部楼层
不羁的风 发表于 2016-7-14 16:15
这样传过的registrationId 的值如图,是过滤出来的符合条件的多个电话号码,现在我想给这几个号码推送消息 ...

后台需要修改代码!
需要定义一个Collection 类型的集合对象,当做参数传递进去
比如 :List aliases = new ArrayList();
吧前台接收的字符串,通过str.split方法分割成数组!然后再添加到 aliases  这个list中!

.setAudience(Audience.registrationId(registrationId))
修改过成
.setAudience(Audience.alias(aliases))

这样就表示给多个别名用户推送消息了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-7-15 10:29:43 | 显示全部楼层
liangyongfei 发表于 2016-7-15 10:23
后台需要修改代码!
需要定义一个Collection 类型的集合对象,当做参数传递进去
比如 :List aliases = n ...

我是用for循环解决的,这种解决方法的效率是不是比较低? 还有就是当我对三个号码进行推送了,但是三个号码中只有一个号码打开了APP并且登陆了,  其他两个没有登陆或者没有注册。这样会导致推送其他两个没登陆或者没注册的号码的时候报错!这个怎么解决啊?
qq:7953899
回复 支持 反对

使用道具 举报

发表于 2016-7-15 16:17:28 | 显示全部楼层
不羁的风 发表于 2016-7-15 10:29
我是用for循环解决的,这种解决方法的效率是不是比较低? 还有就是当我对三个号码进行推送了,但是三个号 ...

既然没有号码,为什么还要给它推送呢??极光推送应该有API 可以检测这个别名是否存在??如果不存在就不要给它推送了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

1018

主题

4395

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
11191
QQ
发表于 2016-7-16 17:25:10 | 显示全部楼层
表示关注,
孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
 楼主| 发表于 2016-7-18 10:05:35 | 显示全部楼层
liangyongfei 发表于 2016-7-15 16:17
既然没有号码,为什么还要给它推送呢??极光推送应该有API 可以检测这个别名是否存在??如果不存在就不 ...

号码在数据库中是存在的,因为是从数据库中取出来的,但是当这个号码没在手机上登陆时,直接推送过去的话就会报错

  1. [http-8080-7] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
  2. [http-8080-7] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
  3. [http-8080-7] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
  4. [http-8080-7] INFO cn.jpush.api.common.connection.NativeHttpClient - Created instance with _maxRetryTimes = 3
  5. [http-8080-7] WARN cn.jpush.api.common.connection.NativeHttpClient - Got error response - responseCode:400, responseContent:{"error":{"message":"The schedule-task is invalid, push is invalid:cannot find user by this audience","code":8100}}
  6. [http-8080-7] ERROR cn.jpush.api.common.connection.NativeHttpClient - Your request params is invalid. Please check them according to error message.
  7. {}
  8.         at cn.jpush.api.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:232)
  9.         at cn.jpush.api.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:94)
  10.         at cn.jpush.api.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:81)
  11.         at cn.jpush.api.schedule.ScheduleClient.createSchedule(ScheduleClient.java:58)
  12.         at cn.jpush.api.JPushClient.createSingleSchedule(JPushClient.java:433)
  13.         at hy.Push.sendPushMessage(Push.java:82)
  14.         at hy.Push.push(Push.java:51)
  15.         at hy.Jpush__do.push(Jpush__do.java:43)
  16.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  17.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  18.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  19.         at java.lang.reflect.Method.invoke(Method.java:497)
  20.         at com.justep.baas.action.Engine.execAction(Unknown Source)
  21.         at com.justep.baas.action.Engine.execAction(Unknown Source)
  22.         at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  23.         at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  24.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  25.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  26.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  27.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  28.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  29.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  30.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  31.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  32.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  33.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  34.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  35.         at java.lang.Thread.run(Thread.java:745)
  36. com.justep.baas.action.ActionException: Action[hy/jpush/push]执行失败,{}
  37.         at com.justep.baas.action.Engine.execAction(Unknown Source)
  38.         at com.justep.baas.action.Engine.execAction(Unknown Source)
  39.         at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  40.         at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  41.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  42.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  43.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  44.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  45.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  46.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  47.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  48.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  49.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  50.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  51.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  52.         at java.lang.Thread.run(Thread.java:745)
  53. Caused by: java.lang.reflect.InvocationTargetException
  54.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  55.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  56.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  57.         at java.lang.reflect.Method.invoke(Method.java:497)
  58.         ... 16 more
  59. Caused by: java.lang.RuntimeException: {}
  60.         at hy.Push.push(Push.java:57)
  61.         at hy.Jpush__do.push(Jpush__do.java:43)
  62.         ... 20 more
  63. Caused by: {}
  64.         at cn.jpush.api.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:232)
  65.         at cn.jpush.api.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:94)
  66.         at cn.jpush.api.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:81)
  67.         at cn.jpush.api.schedule.ScheduleClient.createSchedule(ScheduleClient.java:58)
  68.         at cn.jpush.api.JPushClient.createSingleSchedule(JPushClient.java:433)
  69.         at hy.Push.sendPushMessage(Push.java:82)
  70.         at hy.Push.push(Push.java:51)
  71.         ... 21 more
  72. 七月 18, 2016 10:01:35 上午 org.apache.catalina.core.StandardWrapperValve invoke
  73. 严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
  74. {}
  75.         at cn.jpush.api.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:232)
  76.         at cn.jpush.api.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:94)
  77.         at cn.jpush.api.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:81)
  78.         at cn.jpush.api.schedule.ScheduleClient.createSchedule(ScheduleClient.java:58)
  79.         at cn.jpush.api.JPushClient.createSingleSchedule(JPushClient.java:433)
  80.         at hy.Push.sendPushMessage(Push.java:82)
  81.         at hy.Push.push(Push.java:51)
  82.         at hy.Jpush__do.push(Jpush__do.java:43)
  83.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  84.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  85.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  86.         at java.lang.reflect.Method.invoke(Method.java:497)
  87.         at com.justep.baas.action.Engine.execAction(Unknown Source)
  88.         at com.justep.baas.action.Engine.execAction(Unknown Source)
  89.         at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  90.         at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  91.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  92.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  93.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  94.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  95.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  96.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  97.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  98.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  99.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  100.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  101.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  102.         at java.lang.Thread.run(Thread.java:745)
复制代码
qq:7953899
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2016-7-19 15:06:52 | 显示全部楼层
查一下极光推送的API看看是否有这样的处理
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 16:18 , Processed in 0.111761 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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