消息应用程序的IOS推送通知

时间:2018-03-07 02:34:36

标签: ios push-notification apple-push-notifications messaging whatsapp

我正在使用消息传递应用程序,应用程序需要从服务器接收通知(聊天消息)。我在接收静默通知时遇到问题,大部分通知都无法通过设备接收,方案如下:

  1. iOS 10 - 将应用程序置于后台并推送静默通知,所有通知都可以由设备接收。

  2. iOS 11 - 将应用程序置于后台并推送静默通知,设备只能接收前10个通知,其余通知消失,我尝试重新启动设备并将应用程序置于后台,能够接收另一些通知,然后再没有收到通知。

  3. 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")
    }
    
  4. 我尝试Whatsapp推送通知,即使我杀了应用程序并在设置中关闭后台应用程序刷新,所有通知仍然进来,我很好奇Whatsapp如何处理推送通知?

    如何解决此通知问题?

2 个答案:

答案 0 :(得分:2)

理想情况下,您应该使用XMPP服务器基础进行实时聊天。

XMPP服务器具有RTC(实时通信)协议,其中2方或多方可以连接,交换文档,实时聊天,视频通话,音频通话等。

您还可以集成websocket,以了解用户是在线/办公室和其他活动。

整合苹果推送,不是像whatsapp,facebook messager,skype等实时聊天应用程序的100%解决方案。

Get more information about Pushkit

答案 1 :(得分:0)

从iOS 8开始,Apple推出了一种名为VoIP push的推送通知服务。 VoIP推送由Apple的PushKit框架提供。

普通推送通知服务具有以下缺点

  • 交付:Apple不承诺交付时间或优先权。
  • 需要发送推送的权限:并非所有用户都明白他们需要允许它接听电话。
  • 在用户决定采取行动之前,应用程序不知道推送。
  • 如果您发送太多邮件,Apple可能会限制您的推送消息。

现在来到PushKit框架,

PushKit框架的好处是,

  • 你不需要允许推;它在没有用户知道的情况下工作。
  • Apple承诺优先提供这些推送通知。
  • 您的推送通知不会丢失。
  • 您可以完全控制推送通知。

因此,对于像您这样的消息传递应用程序,建议使用PushKit框架。这是Github上的tutorial,它解释了如何在您的应用中实现PushKit。