4***@qq.com
4***@qq.com
  • 发布:2019-03-29 11:47
  • 更新:2019-04-03 14:23
  • 阅读:1651

【报Bug】iOS APP后台时,系统收到APN推送消息并未点击时,直接触发了click回调

分类:uni-app

详细问题描述

现象:在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监听成功")    
}  
2019-03-29 11:47 负责人:无 分享
已邀请:
DCloud_iOS_XHY

DCloud_iOS_XHY

用的什么推送?

DCloud_iOS_XHY

DCloud_iOS_XHY

是不是多个页面同时监听了 click 事件 plus.push.addEventListener("click",callback),可使用 5+demo 推送示例 测试一下

4***@qq.com

4***@qq.com (作者)

用的是个推,另外肯定不存在多个click回调。
况且,apn消息为什么会直接触发click消息呢?这也不合理啊。

4***@qq.com

4***@qq.com (作者)

针对此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监听成功")  
    },
  • DCloud_iOS_XHY

    传一下测试的uni demo吧

    2019-03-29 20:42

  • 4***@qq.com (作者)

    回复 DCloud_iOS_XHY:测试程序代码也已经上传到附件。请查阅一下,谢谢。

    2019-03-31 10:23

4***@qq.com

4***@qq.com (作者)

测试程序代码也已经上传到附件。请查阅一下,谢谢

DCloud_iOS_XHY

DCloud_iOS_XHY

经测试没发现问题,请看视频,click 事件只会触发一次

  • 4***@qq.com (作者)

    请问测试视频里边的消息,是通过apn传送的吗?消息内容的代码片段能否提供一下?是个推吗?手机也是iPhone6 ios12.2?HbuilderX为1.7.0?

    我报告的这个问题主要是针对apn消息未点击click就触发click回调

    2019-04-01 17:07

4***@qq.com

4***@qq.com (作者)

请问测试视频里边的消息,是通过apn传送的吗?消息内容的代码片段能否提供一下?是个推吗?手机也是iPhone6 ios12.2?HbuilderX为1.7.0?
我报告的这个问题主要是针对apn消息未点击click就触发click回调

DCloud_iOS_XHY

DCloud_iOS_XHY

就是用你提供的demo测试的,当然是apns推送,推送这块很久没有动过了,你在排查一下吧

4***@qq.com

4***@qq.com (作者)

我想问的是,你用我这个demo代码测试时,服务器端推送的title content payload是什么?

4***@qq.com

4***@qq.com (作者)

一样的代码,在你我不同环境下执行,为什么结果会不同呢

  • 1***@qq.com

    请问你这个问题解决了吗

    2019-09-26 17:15

  • 瓜牛

    回复 1***@qq.com: 后端推送的问题,需要后端设置 content-available:0

    2019-12-18 10:04

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