详细问题描述
现象:在ios手机上,app离线接收由apn发来的消息,点击消息后,click事件回掉了两次。
原因分析:iOS按Home键将APP切到后台,服务端推送,系统收到APN推送消息(此时还未点击消息),直接触发了click回调。但是,将APP关闭,相同情况下不点消息则不会触发click回调。
重现步骤
[步骤]打开app进行登录操作,成功后通过plus.push.addEventListener("click",callback)绑定消息点击回调
[结果]iOS按Home键将APP切到后台,服务端推送,系统收到APN推送消息(此时还未点击消息),直接触发了click回调。
[期望]以上情况不会产生click回调
IDE运行环境说明
HBuilderX 1.7.0.20190314
windows10企业版64位 10.0 17134
uni-app运行环境说明
[运行端是h5或app或某个小程序]
[运行端版本号]
App运行环境说明
[iOS版本号]iOS 12.2
[手机型号]iPhone6
联系方式
[QQ]40634156
补充
针对此Bug录制了视频。我做了一个最简单的uniapp,只在app onlanuch里边获取clientInfo与订阅click、receive回调。测试程序代码也已经上传到附件。
代码如下:
复制代码onLaunch: function() {
console.log('App Launch')
var clientInfo = plus.push.getClientInfo();
console.log("clientid"+clientInfo.clientid);
// 监听点击消息事件
plus.push.addEventListener("click", function(msg) {
// 判断是从本地创建还是离线推送的消息
console.log("触发click回调")
}, false);
// 监听在线消息事件
plus.push.addEventListener("receive", function(msg) {
console.log("触发receive回调")
}, false);
console.log("plus.push监听成功")
}