wzdark
wzdark
  • 发布:2016-08-17 10:41
  • 更新:2016-08-17 10:49
  • 阅读:2648

使用个推,推送消息,应用在线时receive事件无响应。

分类:HTML5+

app上监听在线消息事件,代码如下:

plus.push.addEventListener("receive", function(msg) {  
        // 分析msg.payload处理业务逻辑   
        alert("You receive a message: " + msg.payload );  
}

后台服务端使用 个推的穿透模板推送消息:

public static void pushIOSToSingle(String deviceToken, PushContent pushContent) {  
        IGtPush push = new IGtPush(host, appKey, masterSecret);    
        ITemplate template = transmissionTemplate(pushContent);  

        SingleMessage sm = new SingleMessage();  
        sm.setData(template);  
        // 可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发  
        sm.setPushNetWorkType(0);  
        // 离线有效时间,单位为毫秒,可选  
        sm.setOfflineExpireTime(24 * 3600 * 1000);  
        IPushResult ret = null;  
        try {  
            ret = push.pushAPNMessageToSingle(appId, deviceToken, sm);  
        } catch (RequestException e) {  
            log.error(e.getMessage(), e);  
        }  
        if (ret != null) {  
         log.info(ret.getResponse().toString());  
        } else {  
         log.info("推送服务器响应异常");  
        }  

}

后台推送返回消息:
{result=ok, taskId=OSAPNS-0817_4fFoWsyjwF81uC1ASWMqy8}

这说明推送已经成功, 消息已传到苹果的apns服务器。 按照h5+的push说明(http://www.html5plus.org/doc/zh_cn/push.html), 如果应用在线,这时候会触发 receive事件。 但是经过我的测试, 应用没有任何反应。

求助管理员~~~

2016-08-17 10:41 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

推送插件开发指南
透传消息的payload节点的格式为{"title":"标题","content":"显示的消息体","payload":"透传内容"},可以先console.log(msg)把消息对象打印出来。

  • internetdc

    这个不是打包之后才能测试推送吗?console.log输出的在哪里?

    2017-06-20 14:40

  • wjsljc

    alert出来也可以,移动端的话vconsole了解一下

    2018-07-16 18:08

该问题目前已经被锁定, 无法添加新回复