APP中的监听代码
mui.plusReady(function() {
var info = plus.push.getClientInfo();
plus.push.addEventListener("receive", function(msg) {
var extData = msg.toJSONString();
alert("receive Data "+extData);
}, true);
plus.push.addEventListener("click", function( msg ) {
var extData = msg.toJSONString();
alert("click Data "+extData);
}, true);
});
在个推后台创建了一个推送:
类型为“推送通知”,高级设置中“透传消息”选项设为“开启”,透传参数为:{"RecoredID":"222"},“强制启动”选项设为“开启”。
结果:
手机能收到推送消息,点击消息后能打开应用,能捕获receive事件,但alert出来的信息里,并没有透传参数的任何内容。
本来我的期望获得透传参数后跳转到特定页面的
4 个回复
Joshua
我也遇到这问题,之前没这个问题。问了个推那边的。他们试调了,说是正常的,问题可能出在客户端这边。
Joshua
透传参数一定要 这样的格式 {title:"通知标题",content:"通知内容",payload: 要传的参数}
比如你要传参数{"RecoredID":"222"}, 就要这样{payload: {"RecoredID":"222"}}
Joshua
之前可不是这样的,不需要这样的格式 {title:"通知标题",content:"通知内容",payload: 要传的参数}。现在一定要这样的格式,改了也不说明下。这下可惨了,app要升级,旧版本跟新版本的数据格式不一样了。后端要去分新旧版本app,作出不同的处理
轰炸大鱿鱼
元旦放假回来就发现了 回头找了找感觉12月30号左右就出现这问题了 新版本的推送消息有固定格式 凡是带有content和title的 都直接生成notification.......................以前根本没有这种格式要求!而且发现现在透传过来的数据还带转义字符\还得过滤下,客户端还好,服务端所有参数都要写在payload里了,要等服务器哥们慢慢改了
Joshua
可惨了,我们有4个app,各有android、ios版本
2016-01-06 14:41
轰炸大鱿鱼
以前打好的包 以前的服务器代码 不重新给app打包 应该不影响的 我试过 只有用以前的代码重新打包 就会出错 这也是为啥我们一直怀疑是不是dcloud云打包的问题...不过dcloud说他们没改
2016-01-06 14:50
Joshua
我是离线打包的,除非一直用旧的sdk,不然的话,就得改了
2016-01-06 14:57
轰炸大鱿鱼
回复 Joshua:对了 格式是不要带title和content的吧 凡是带有title和content的透传被mui检测到之后 直接生成notification而且透传就不给你收到了 格式应该是这样的吧{"payload":{"localPyaload":"test","id":"testIDs","state":2}} 这样才能收到透传 而且个推好像会给透传信息加上title和content 我们就是这么测的 收到的数据还出现了转义\ 客户端还得过滤掉 你们没有出现这种情况吗
2016-01-06 15:05
Joshua
title没有的话,默认是app的名字,content没有的话为空,
2016-01-06 15:28