在ios上 plus.push.createMessage会闪退
- 发布:2015-01-30 20:38
- 更新:2019-12-31 08:46
- 阅读:2134
我也遇到了,app在前台,创建了本地消息,然后点击通知栏消息后,app就出现闪退
但是用真机模拟,就不会,线上打成包,安装就会
还有通过个推推送过来的消息,也就是apns过来的消息,当app处于后台时,点击发送过来的消息,也能跳回app页面,但是app处于前台,点击消息时,也会出现闪退
l***@qq.com - 码农
我也遇到这个问题,已解决,记录以备查询。
createMessage 创建消息后,如果应用在前台,会继续解发 receive事件,重复创建 createMessage ,造成死循环,然后就闪退。
解决方法:receive 接收的消息 type=receive, 判断 type==receive 时创建 createMessage
我的之前也没有问题,最近升级系统之后就这样了,按照 lying.tech@qq.com说的方法也不行 就是闪退
plus.push.addEventListener(
'receive',
function(msg) {
console.log('(receive):' + JSON.stringify(msg));
if (push.isIOS()) {
//如果是IOS
var payload = msg.payload;
//【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他的没有提醒)
//【APP在线】收到消息,不会触发系统消息,需要创建本地消息,但不能重复创建。必须加msg.type验证去除死循环
if (msg.aps == null && msg.type == "receive") {
console.log('测试本地消息');
var messageTitle = payload.messageTitle;
var messageContent = payload.messageContent;
//创建本地消息,发送的本地消息也会被receive方法接收到,但没有type属性,且aps是null
plus.push.createMessage(messageContent, JSON.stringify(payload), { title: messageTitle });
return;
}
}
if (push.isAndroid()) {
//如果是Android,当APP在线时,收到透传消息不会进入系统消息,需要发送本地提醒。
var payload = JSON.parse(msg.payload);
var messageTitle = payload.messageTitle;
var messageContent = payload.messageContent;
plus.push.createMessage(messageContent, msg.payload, { title: messageTitle });
}
},
false
);
阿峰
我也遇到这个问题 ,创建本地消息后 , app就退出了··通知栏里面看到 创建消息成功了···
2015-10-24 22:12