我正在使用消息传递应用程序,应用程序需要从服务器接收通知(聊天消息)。我在接收静默通知时遇到问题,大部分通知都无法通过设备接收,方案如下:
iOS 10 - 将应用程序置于后台并推送静默通知,所有通知都可以由设备接收。
iOS 11 - 将应用程序置于后台并推送静默通知,设备只能接收前10个通知,其余通知消失,我尝试重新启动设备并将应用程序置于后台,能够接收另一些通知,然后再没有收到通知。
iOS 10和11 - 杀死应用程序并推送无提示通知,所有通知均未收到。
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
logging(cls: self, mod: "APP", msg: "Did receive remote notification")
}
我尝试Whatsapp推送通知,即使我杀了应用程序并在设置中关闭后台应用程序刷新,所有通知仍然进来,我很好奇Whatsapp如何处理推送通知?
如何解决此通知问题?
答案 0 :(得分:2)
理想情况下,您应该使用XMPP服务器基础进行实时聊天。
XMPP服务器具有RTC(实时通信)协议,其中2方或多方可以连接,交换文档,实时聊天,视频通话,音频通话等。
您还可以集成websocket,以了解用户是在线/办公室和其他活动。
整合苹果推送,不是像whatsapp,facebook messager,skype等实时聊天应用程序的100%解决方案。
答案 1 :(得分:0)
从iOS 8开始,Apple推出了一种名为VoIP push的推送通知服务。 VoIP推送由Apple的PushKit框架提供。
普通推送通知服务具有以下缺点,
现在来到PushKit框架,
PushKit框架的好处是,
因此,对于像您这样的消息传递应用程序,建议使用PushKit框架。这是Github上的tutorial,它解释了如何在您的应用中实现PushKit。