Xamarin.iOS - 设备关闭时的 PushNotification
Xamarin.iOS - PushNotification when the device is off
您好,我想知道在设备 os 关闭时是否可以收到服务器发送的推送通知。os
如何配置应用程序和 Azure 通知中心以了解设备在发送通知时没有收到通知并在再次打开(或在线)时显示它们?
可以os做吗?
谢谢
Azure 通知中心只是告诉您通知已发送。如果那是您正在寻找的,则无法获得 "received" 确认。这实际上与 Azure 无关,这只是 Apple 推送通知服务(与 Azure 连接)的工作方式。
Apple 推送通知服务 (APN) 将 retain/cache 在设备关闭时发送最后(且仅是最后)通知。一旦设备在线,APN 将再次尝试发送通知。但是有一个时间限制,过了这个时间限制,缓存的通知就会丢失,这意味着您的通知可能永远不会到达它的目的地。
如果您真的需要获得到达确认(即:像 whatsapp 确认),您应该自己实施。那将是另一个问题,但这里有一些提示:
- 您在通知负载中包含一个 uid
- 您将该 uid 保存在服务器数据库中,在跟踪 "pending notifications" 的 table 中。
- 设备打开通知并向服务器发送到达确认,将 uid 作为参数传递 => 您删除数据库中的 "pending notification" 记录 table。
您将如何重新发送 pending/lost 通知?
- 选项 1:实施某种后台作业,检查(在时间段内。即:每 5 分钟一次)哪些通知未到达并重新发送它们,直到它们被正确确认。
- 选项 2:当您的移动应用程序启动时,向服务器发送一条消息告知 "hey, I´m online again"。然后处理并发送所有特定于 user/device 的待处理通知,将它们从待处理通知 table.
中删除
您好,我想知道在设备 os 关闭时是否可以收到服务器发送的推送通知。os
如何配置应用程序和 Azure 通知中心以了解设备在发送通知时没有收到通知并在再次打开(或在线)时显示它们?
可以os做吗?
谢谢
Azure 通知中心只是告诉您通知已发送。如果那是您正在寻找的,则无法获得 "received" 确认。这实际上与 Azure 无关,这只是 Apple 推送通知服务(与 Azure 连接)的工作方式。
Apple 推送通知服务 (APN) 将 retain/cache 在设备关闭时发送最后(且仅是最后)通知。一旦设备在线,APN 将再次尝试发送通知。但是有一个时间限制,过了这个时间限制,缓存的通知就会丢失,这意味着您的通知可能永远不会到达它的目的地。
如果您真的需要获得到达确认(即:像 whatsapp 确认),您应该自己实施。那将是另一个问题,但这里有一些提示:
- 您在通知负载中包含一个 uid
- 您将该 uid 保存在服务器数据库中,在跟踪 "pending notifications" 的 table 中。
- 设备打开通知并向服务器发送到达确认,将 uid 作为参数传递 => 您删除数据库中的 "pending notification" 记录 table。
您将如何重新发送 pending/lost 通知?
- 选项 1:实施某种后台作业,检查(在时间段内。即:每 5 分钟一次)哪些通知未到达并重新发送它们,直到它们被正确确认。
- 选项 2:当您的移动应用程序启动时,向服务器发送一条消息告知 "hey, I´m online again"。然后处理并发送所有特定于 user/device 的待处理通知,将它们从待处理通知 table. 中删除