麦生
麦生
  • 发布:2015-01-30 20:38
  • 更新:2019-12-31 08:46
  • 阅读:2144

ios创建本地消息闪退

分类:HTML5+

在ios上 plus.push.createMessage会闪退

2015-01-30 20:38 1 条评论 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

这么问问题,别人无法分析回答。
请详细描述,必要时贴出代码。

  • 阿峰

    我也遇到这个问题 ,创建本地消息后 , app就退出了··通知栏里面看到 创建消息成功了···

    2015-10-24 22:12

阿峰

阿峰

我也遇到这个问题 ,创建本地消息后 , app就退出了··通知栏里面看到 创建消息成功了···

奇怪!

战无不胜

战无不胜

我也出现这个问题,之前是好的,系统升到IOS11.02以后就出现这个问题了

  • 骁骑

    是使用新版本的HB调试的么?

    2018-02-09 14:38

  • 战无不胜

    回复 骁骑:我是打包后安装测试都有问题

    2018-02-09 15:28

  • 骁骑

    离线打包还是在线打包的?如果是离线打包的请更新一下SDK

    2018-02-09 16:33

  • 骁骑

    可以先用HelloH5的代码测试一下是不是有一样的问题,如果HelloH5没有问题请把你创建本地消息的代码发出来下

    2018-02-09 16:37

x***@163.com

x***@163.com

我也遇到了,app在前台,创建了本地消息,然后点击通知栏消息后,app就出现闪退
但是用真机模拟,就不会,线上打成包,安装就会
还有通过个推推送过来的消息,也就是apns过来的消息,当app处于后台时,点击发送过来的消息,也能跳回app页面,但是app处于前台,点击消息时,也会出现闪退

l***@qq.com

l***@qq.com - 码农

我也遇到这个问题,已解决,记录以备查询。

createMessage 创建消息后,如果应用在前台,会继续解发 receive事件,重复创建 createMessage ,造成死循环,然后就闪退。

解决方法:receive 接收的消息 type=receive, 判断 type==receive 时创建 createMessage

l***@qq.com

l***@qq.com - 码农

避免重复 createMessage 本地消息

x***@vip.qq.com

x***@vip.qq.com - 如果你看见前面的阴影,别怕、那是因为你的背后有阳光。

我的之前也没有问题,最近升级系统之后就这样了,按照 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  
        );

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