【问题标题】:IOS Push notification for messaging app消息应用程序的 IOS 推送通知
【发布时间】:2018-08-15 00:58:58
【问题描述】:

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

  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")
    }
    

我尝试Whatsapp推送通知,即使我在设置中关闭应用并关闭后台应用刷新,所有通知仍然进来,我很好奇Whatsapp如何处理推送通知?

如何解决这个通知问题?

【问题讨论】:

  • 嘿,你能解决这个问题吗?有什么注意事项吗?

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


【解决方案1】:

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

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

您还可以集成websocket,用于了解用户在线/办公等活动。

集成苹果推送,对于whatsapp、facebook messager、skype 等实时聊天应用来说,并不是 100% 的解决方案。

Get more information about Pushkit

【讨论】:

    【解决方案2】:

    从 iOS 8 开始,Apple 引入了一种称为 VoIP 推送的新型推送通知服务。 VoIP 推送由 Apple 的PushKit 框架提供。

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

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

    现在来到 PushKit 框架,

    PushKit 框架的好处是,

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

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

    【讨论】:

    • 我们可以在应用程序中使用没有语音支持的 voip pushkit 吗?
    • 许多应用都在使用 VoIP 推送而不使用 VoIP 呼叫。所以试试看:)
    • 更新 - 看起来 Apple 不批准在没有 VoIP 呼叫的情况下支持 PushKit 的应用程序。
    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2021-08-01
    相关资源
    最近更新 更多