(请注意,这个问题与大多数解析推送通知问题不同,因为推动 工作,在同一时间内不一致。所以这不是像{{{}这样的类似问题的重复3}}。)
我已经在几个项目中使用Parse大约一年了,而且这一次,我发现推送通知对于ios来说是不一致的。
我的问题是,
例如,今天早上我注意到昨天发生的每日推送通知从未发生过。为了调查这个问题,我尝试使用我的应用程序中的一个按钮来生成推送通知,该按钮调用Parse云代码函数来触发推送通知。
我在几分钟内做了几次,并且使用Parse网站确认我的Parse应用程序发送了推送通知,而Parse认为它已成功。
但我的iPad上没有任何推动。以前曾多次以同样的方式发生过这种情况 - 就像有些时候推动永不经过的那样;有时它们会在15分钟后出现,虽然今天早上没有发生 - 它们刚刚消失,从未交付过。
我尝试使用Parse网站手动将推送发送到同一个用户安装,并且工作正常; 然后我选择"其中"和"数据"来自先前发送(但从未接收)推送的json部分,并且将它们粘贴到curl命令行推送命令中,具有正确的应用程序和其他api id。这很好地立即,并立即在ipad上正确显示。
之后,应用内的推送请求似乎工作正常!
因此,应用程序本身似乎没有任何问题 - 成功和不成功的推送尝试看起来与Parse服务器相同,至少根据推送通知Web GUI ...
在Parse启动推送请求并将其发送给Apple之后,就好了行为不一致 。这可能是在Parse的结束或Apple的结束。
奇怪的是,通过使用其他方法让Parse向该设备发送推送通知,我似乎能够暂时解决问题。它几乎就像在Parse或Apple的最后一样,有一个设置或缓存阻止设备按照某种模式接收推送,并通过打破这种模式并获得不同的推动,按照原始推动的模式推进现在可以很好。
我的Parse应用页面的屏幕截图。从未到达设备的推送时间是10:06和10:09。在10:14推进后来都很好:
通过我的应用程序发起的10:09推送的详细信息,未能通过电话
10:21推送的详细信息,通过命令行的curl启动,出现在手机上。注意包含deviceType:
10:22推送的详细信息,通过我的应用启动,出现在手机上
根据我的描述,您可能想知道推送是否只是如此之快,以至于我在离开应用程序之前没有机会看到它;或者它可能已经在ipad的前景中的最后一秒钟到达应用程序。但我在应用程序中专门编写了推送请求,因此在您使用主页按钮或设备电源按钮离开应用程序之前,它不会提交请求。我已多次确认此功能有效 - 在应用程序位于前台时推送未到达,因此它应始终显示在锁定屏幕上或屏幕顶部和通知抽屉中的横幅。
我的可能解释清单:
非常欢迎任何其他可能解释的想法!
我也很想知道其他人是否观察过这种行为。
修改2015-06-23:
为了澄清,这些都是无声推送通知。
在设备拔出电源的情况下100%成功推送,如果他们已经在最后一个小时左右工作。我们目睹了当设备插入很多次时它们没有通过。这种行为在ios 8和现在之前似乎基本相同,使用ios 8.3。
这已在多个设备上观察到,包括ipad和iphone。
编辑2015-06-30:
Parse的开发者支持MVP,Hector Ramos,在Facebook错误提交网站上回复了我对此问题的帖子。他说这对他来说听起来像他们过去在苹果公司看到过的行为。还有一些方面令人困惑,比如我们能做些什么或者Parse可以做些什么......