768720281@qq.com
768720281@qq.com
  • 发布:2019-06-25 15:04
  • 更新:2020-04-28 10:53
  • 阅读:376

【报Bug】关于ios处于后台(假后台) 使用个推Apns通道下发推送信息会直街触发plus.push.addEventListener 的click事件 不会触发receive事件

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]
【报Bug】关于ios处于后台(假后台) 使用个推Apns通道下发推送信息会直街触发plus.push.addEventListener 的click事件 不会触发receive事件 当再次点击推送通知时会再次触发click

//监听click事件,用户从消息中心点击触发的  
            plus.push.addEventListener("click", function(msg) {  
                //根据payload传递过来的数据,打开一个详情  
                console.log(msg)  
                var payload = msg.payload;  
                if(that.$store.state.userInfo!=null){  
                    uni.navigateTo({  
                        url: '/pages/my/my'  
                    })  
                    console.log('执行了!!')  
                }else{  
                    console.log('click未登录')  
                }  
            }, false);  
            //监听receive事件//监听推送的接受事件  
            plus.push.addEventListener("receive", function(msg) {  
                console.log(msg)  
                if(that.$store.state.userInfo!=null){//判断是否登录  
                    if(typeof(msg) != "object"){  
                        var msg = JSON.parse(msg);  
                    }  
                    if (plus.os.name != 'iOS') {  
                        var options={};  
                        options.title=msg.title;  
                        plus.push.createMessage(msg.content, msg.payload,options);  
                    }else if(msg.aps){  
                        console.log(msg.aps)  
                    }  
                    else{  
                        switch (msg.payload) {  
                            case "LocalMSG":  
                                break;  
                            default:  
                                //测试本地推送  
                                var iosmsgstr = msg.content.replace(/\'/g, '"')  
                                var iosmsg=JSON.parse(iosmsgstr);  
                                var options = {cover: false};  
                                plus.push.createMessage(iosmsg.content, "LocalMSG", options);  
                                break;  
                        }  
                    }  
                }else{  
                    console.log('receive未登录')  
                }  
            }, false);

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-06-25 15:04 负责人:无 分享
已邀请:
指尖上的代码

指尖上的代码

如果app不在前台 就会是这样,消息会在通知栏显示,如果在前台需要手动创建消息,但是会多执行一次透传事件,坑

要回复问题请先登录注册