详细问题描述
[内容]
在使用推送功能时,监听receive事件后使用createMessage会造成app闪退
重现步骤
[步骤]
[结果]
[期望]  
运行环境
[系统版本]
[浏览器版本]
[IDE版本]
[mui版本]  
附件
[代码片段]
// 监听推送消息接收事件  
            plus.push.addEventListener("receive", function(msg) {  
                test("receive " + JSON.stringify(msg));  
                parseAndCreateNotification(msg);  
                pushMsg = msg; //监听到消息时将值赋给pushMsg  
            }, false);
/**  
             * 创建本地消息  
             */  
            function parseAndCreateNotification(msg) {  
                if(plus.os.name=="iOS") {  
                    var data = JSON.parse(msg.payload.customMsg);  
                    var title = data.detail.title;  
                    var content = data.detail.content;  
                    var options = {  
                        cover: false  
                    };  
                    var str = content;  
                    document.getElementById("num").value = 5;  
                    plus.push.createMessage(str, data, options);  
                } else {  
                    var data = JSON.parse(msg.payload);  
                    var title = data.title;  
                    var content = data.content;  
                    var options = {  
                        cover: false,  
                        title: title  
                    };  
                    var str = content;  
                    document.getElementById("num").value = 6;  
                    plus.push.createMessage(str, data, options);  
                }  
            }
[安装包]
联系方式
[QQ] 550809554
[电话]  
            
            
            
            
2 个回复
战无不胜
这个问题解决没?
l***@qq.com - 码农
我也遇到这个问题,已解决,记录以备查询。
createMessage 创建消息后,如果应用在前台,会继续解发 receive事件,重复创建 createMessage ,造成死循环,然后就闪退。
解决方法:receive 接收的消息 type=receive, 判断 type==receive 时创建 createMessage
4***@qq.com
您好,您这个解决方法看不大懂,能详询下吗
2019-12-28 16:30
4***@qq.com
判断 type==receive 时创建 createMessage 这个是在哪里判断的呢
2019-12-28 16:30