Xamarin.iOS - 设备关闭时推送通知
Posted
技术标签:
【中文标题】Xamarin.iOS - 设备关闭时推送通知【英文标题】:Xamarin.iOS - PushNotification when the device is off 【发布时间】:2016-10-24 20:07:44 【问题描述】:您好,我想知道是否有可能在设备操作系统关闭时收到服务器发送的推送通知。
如何配置应用程序和 Azure 通知中心以了解设备在发送通知时未收到通知,并在通知再次启动(或联机)时显示?
可以吗?
谢谢
【问题讨论】:
【参考方案1】:Azure 通知中心只会告诉您通知已送达。如果这是您正在寻找的,则无法获得“已收到”确认。这实际上与 Azure 无关,它只是 Apple 推送通知服务(与 Azure 连接)的工作原理。
Apple 推送通知服务 (APN) 将保留/缓存在设备关闭时发送的最后一个(也是最后一个)通知。一旦设备在线,APN 将尝试再次发送通知。但是有一个时间限制,在此之后缓存的通知将会丢失,这意味着您的通知可能永远不会到达它的目的地。
如果您确实需要获得到达确认(例如:whatsapp 确认),您应该自己实施。那将是另一个问题,但这里有一些提示:
您在通知负载中包含一个 uid 您将该 uid 保存在服务器数据库中的一个跟踪“待处理通知”的表中。 设备打开通知并向服务器发送到达确认,将 uid 作为参数传递 => 您删除数据库表上的“待处理通知”记录。您将如何重新发送待处理/丢失的通知?
选项 1:实施某种后台作业,检查(在时间段内。即:每 5 分钟一次)哪些通知未到达并重新发送,直到正确确认为止。 选项 2:当您的移动应用程序启动时,向服务器发送一条消息,告诉您“嘿,我又在线了”。然后处理并发送特定于该用户/设备的所有待处理通知,将它们从待处理通知表中删除。【讨论】:
以上是关于Xamarin.iOS - 设备关闭时推送通知的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.iOS 应用程序未运行时未处理 Amazon SNS 推送通知
Xamarin.iOS如何在注册到后端以获取推送通知后获取安装ID