Sal*_*lim 17 iphone objective-c push-notification ios
我在应用程序中使用推送通知.一切都很顺利.
有时从服务器发送的消息,但在应用程序端,它没有收到.
在这种情况下,我必须知道哪些消息丢失(app没有收到).
有没有办法从服务器端知道哪些消息是由app收到的,哪些不是?
sta*_*Man 27
Apple不会告诉您以下内容:
另一方面,当用户选择推送通知时,您的应用可以在一定程度上处理此问题:
基本上,您可以在服务器中添加逻辑-didReceiveRemoteNotification:
并-didFinishLaunchingWithOptions:
与服务器联系,并告诉服务器已收到消息.
如果在特定时间段内未收到,则可以重新发送.
但正如您所看到的,这可能会导致使用相同的推送通知充斥无辜用户的可能情况.
在某种意义上,骚扰他点击你的愚蠢推送通知,这反过来可能导致他完全关闭你的应用程序的推送通知,但大多数情况下他会删除该应用程序甚至可能给它一个低评级?
我会说,为你服务吧.
无论如何,如果你继续这样做,你需要实现一个识别模式,你可以message identifier
在推送通知的有效载荷中插入一个唯一的,当你的应用获得这个推送通知时,它应该将它发送message identifier
回服务器.
然后,您的服务器应记录特定设备令牌返回的内容message identifier
,这意味着它收到了特定的推送通知.
您的服务器可以每小时/每天/不论来检查,并将特定消息重新发送给那些未向亲属报告的设备令牌message identifier
.
同样,这意味着您的服务器有时可能需要工作OT.
整个方法还有其他问题:
您可以通过在应用程序中使用更多逻辑来绕过最后3个场景,这些逻辑将要发送到服务器的消息ID排队,并仅在服务器成功响应时将其删除.
所以你看,太多的工作,服务器端+客户端.
此外,在处理大量用户时,服务器端的性能会大幅下降,同时还会降低应用程序的性能.
归档时间: |
|
查看次数: |
25018 次 |
最近记录: |