Xamarin.iOS - 设备关闭时的PushNotification

时间:2016-10-24 20:07:44

标签: azure push-notification xamarin.ios apple-push-notifications

您好我想知道是否有可能在设备关闭时获取服务器发送的推送通知。

如何配置应用程序和Azure通知中心,以确定设备在发送时未收到通知,并在再次启用(或联机)时显示?

有可能吗?

谢谢

1 个答案:

答案 0 :(得分:1)

Azure通知中心只会告诉您已发送通知。如果这是你正在寻找的东西,没有办法得到“收到”的确认。这实际上与Azure无关,它只是Apple推送通知服务(与Azure连接)的工作方式。

Apple推送通知服务(APN)将保留/缓存设备关闭时发送的最后一个(也是最后一个)通知。设备在线后,APN将尝试再次发送通知。但是有一个时间限制,之后缓存的通知将会丢失,这意味着您的通知可能永远不会到达其命运。

如果您确实需要获得抵达确认(即:像whatsapp确认),您应该自己实施。这将是另一个问题,但这里有一些提示:

  • 您在通知有效负载中包含uid
  • 将该uid保存在服务器数据库中,跟踪“待处理通知”的表中。
  • 设备打开通知并向服务器发送到达确认,并将uid作为参数传递给参数=>删除数据库表上的“待处理通知”记录。

您如何重新发送待处理/已丢失的通知?

  • 选项1:实施某种后台工作,检查(在时间段内,即:每5分钟一次)哪些通知未到达并重新发送,直到它们被正确确认。
  • 选项2:当您的移动应用程序启动时,向服务器发送消息,告诉“嘿,我再次在线”。然后处理并发送特定于该用户/设备的所有待处理通知,并将其从待处理通知表中删除。