在WeX5的3.8版本上使用jpush-phonegap-plugin插件,一条消息ios设备可能收到两次

重复消息
ios
标签: #<Tag:0x00007fb846fc5020> #<Tag:0x00007fb846fc4aa8>

(Felix) #1

现在用WeX5的3.8版本的极光推送(使用jpush-phonegap-plugin插件),在ios下app处于激活时收到消息,不会有弹窗提醒,但会进入onReceiveNotification事件;只有app在后台或者锁屏时,才可以看到消息弹窗提醒,但不会进入onReceiveNotification事件,这都很正常。

不正常的是,如果app处于激活状态下收到消息,过了约30秒后,app会再次收到同样的消息,此时不仅进入onReceiveNotification事件,而且会有消息弹窗提醒。

该插件的版本号为:3.2.13

我不知道是WeX5的封装的问题,还是该插件的问题,不管怎么说是有关极光推送的,特此过来求助。


#2

将你这样的测试得到的日志给一下,根据你的说明,应是打印了两次消息内容,看msgid一致否,走的方法分别是什么。

你iOS设备的系统是多少


(Felix) #4

ios设备系统是10.3.3

刚刚仔细比较过了,两次收到的消息完全一样。你说的msgid,是不是_j_msgid? 两条消息都是:36028797384804960


#5

说明这是同一条消息,提供下日志,我需要确认下你们是否推送的时候同时推送了Message消息和Notification消息,导致收到两个一样的。

如果不是这样,那还有的可能是:
ios 一条推送,收到两条消息


(Felix) #6

遇到的问题和这个有点像

用Web推送时,就一点问题也没有…… 调用api的问题?


#7

你在官网控制台推送的也是一样的用别名推送的?

因为现在msgid一样,就说明消息一样,不是很清楚是因为 iOS系统bug导致的发了两次,还是你APP里面有不同方法走了两次,打印了两次而已。

如果是前一种,你可以直接对registrationID 推送看看结果如何。


(Felix) #8

亲,问题解决了。
在调用api的时候,ios用了“content-available”属性,把这个属性删掉就行了。

我这边之所以用设备别名进行推送,是因为:
打开app时:
1.删除当前设备的别名;
登录时:
2.删除当前设备的别名
3.清空所有与指定别名相同的设备的别名
4.为当前设备设置指定别名

所以确保一个别名只能对应一个设备


#9

嗯,OK,这个属性的用处在这里有介绍