解析推送通知不一致

时间:2015-06-19 15:14:01

标签: ios ipad parse-platform push-notification apple-push-notifications

(请注意,这个问题与大多数解析推送通知问题不同,因为推动 工作,在同一时间内不一致。所以这不是像{{{}这样的类似问题的重复3}}。)

我已经在几个项目中使用Parse大约一年了,而且这一次,我发现推送通知对于ios来说是不一致的。

我的问题是,

  1. 发生了什么?
  2. 我能做些什么吗?
  3. 这是Parse的问题,还是使用向Apple发送推送通知请求的方法会遇到同样的问题?
  4. 例如,今天早上我注意到昨天发生的每日推送通知从未发生过。为了调查这个问题,我尝试使用我的应用程序中的一个按钮来生成推送通知,该按钮调用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推进后来都很好: Pushes that never arrived on device are at 10:06 and 10:09. Pushes at 10:14 and later all came through fine.

    通过我的应用程序发起的10:09推送的详细信息,未能通过电话 Detail of the 10:09 push, which failed to arrive on phone

    10:21推送的详细信息,通过命令行的curl启动,出现在手机上。注意包含deviceType: Detail of the 10:21 push, which appeared on the phone fine

    10:22推送的详细信息,通过我的应用启动,出现在手机上 Detail of the 10:22 push, initiated via my app, which appeared on the phone fine

    根据我的描述,您可能想知道推送是否只是如此之快,以至于我在离开应用程序之前没有机会看到它;或者它可能已经在ipad的前景中的最后一秒钟到达应用程序。但我在应用程序中专门编写了推送请求,因此在您使用主页按钮或设备电源按钮离开应用程序之前,它不会提交请求。我已多次确认此功能有效 - 在应用程序位于前台时推送未到达,因此它应始终显示在锁定屏幕上或屏幕顶部和通知抽屉中的横幅。

    我的可能解释清单:

    1. 请求的格式不同:不,检查成功和不成功的推送位置和数据部分; Parse已经以相同的方式清楚地处理了这些请求,因此格式化似乎没有区别
    2. 请求是不同的数据包/有效负载大小,Apple拒绝更大的规模:根据上面的Parse查看请求;内容相同。 (我当然看到更大的数据负载推送被拒绝。)
    3. 客户端的连接性不一致:始终可行,但这里不太可能。这个ipad没有蜂窝数据,只有wifi,信号强大且一致,其他互联网功能在同一分钟内与每个请求一起工作。
    4. Parse在不同时间表现不一致,完全超出我的控制范围,并且在应用程序Web GUI中没有显示出这种情况:似乎有可能。但是,为什么我似乎有能力通过不同形式的推动来修复功能呢?
    5. Parse行为不一致,我确实有一些控制权,虽然这是没有记录的,并且由于软件和/或架构错误:这是一个不错的猜测。
    6. Apple在不同时间表现不一致,完全超出我的控制范围,并且在应用程序Web GUI中没有显示出这种情况的迹象:似乎有可能。但是,为什么我似乎有能力通过不同形式的推动来修复功能呢?
    7. Apple行为不一致,我确实有一些控制权,虽然这是没有记录的,并且由于软件和/或架构错误:这是一个不错的猜测。
    8. 非常欢迎任何其他可能解释的想法!

      我也很想知道其他人是否观察过这种行为。

      修改2015-06-23:

      为了澄清,这些都是无声推送通知。

      在设备拔出电源的情况下100%成功推送,如果他们已经在最后一个小时左右工作。我们目睹了当设备插入很多次时它们没有通过。这种行为在ios 8和现在之前似乎基本相同,使用ios 8.3。

      这已在多个设备上观察到,包括ipad和iphone。

      编辑2015-06-30:

      Parse的开发者支持MVP,Hector Ramos,在Facebook错误提交网站上回复了我对此问题的帖子。他说这对他来说听起来像他们过去在苹果公司看到过的行为。还有一些方面令人困惑,比如我们能做些什么或者Parse可以做些什么......

0 个答案:

没有答案