详细问题描述
(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]
1 个回复
指尖上的代码
如果app不在前台 就会是这样,消息会在通知栏显示,如果在前台需要手动创建消息,但是会多执行一次透传事件,坑