ios - 可靠地传送 iOS VOIP 推送通知

标签 ios iphone amazon-web-services push-notification voip

和这里的许多人一样,我一直在寻找一种可靠的方式来将推送通知传送到应用程序以进行后台处理。我最终决定使用 PushKit 并且一切正常并且该应用程序被 AppStore 接受,即使它不是 VoIP 应用程序。我正在使用 AWS SNS(简单通知服务)来处理后端推送处理。但是,如果您发送过多的推送通知,iOS 也会限制 VoIP 通知的发送。作为一个简单的测试,我可以在 2 到 3 分钟内发送多个 VoIP 通知,它们将迅速传送并由应用程序在后台处理。在我等待大约 10 分钟后(在锁定 iPad 并等待 iOS 将应用程序置于 sleep 状态之后),iOS 不会立即发送后续的 VoIP 推送。 AWS 正在推送通知,但 iOS 并未将其传送到应用程序。我知道这一点,因为只要我插入设备,应用程序就会处理通知。顺便说一句,如果设备保持插入状态,所有通知都会立即传送和处理。

所以我的问题是:其他人是否也注意到 VoIP 推送的这种行为?尽管 iOS 文档表明 VoIP 推送会立即传送,但如果 iOS 认为在一段时间内推送“过多”,iOS 似乎确实会限制它们。

最佳答案

我想,当您将应用程序置于后台时,您就会收到推送通知。但是当您的应用程序终止时,则不会收到推送通知。

当您的应用处于终止(终止)状态时,它可能会崩溃。

Pushkit 静默通知始终具有更高的优先级,并且始终运行良好。

尝试以下操作以找出原因和解决方案。

(1) 在 killed (terminated) 状态下调试你的应用程序,比如应用程序是否崩溃

(2) 使用 pem 和证书通过简单的 php 代码发送静默通知(案例背景和被杀死(终止))

(3) 检查 pushkit 集成步骤,如果你的应用没有注册 VOIP,那么它不会收到静默通知。

enter image description here

enter image description here

在终止状态下调试 pushkit 通知

  • 将调试指针放在委托(delegate)方法上
  • 去编辑方案
  • 选择运行选项然后启动 -> 等待可执行文件启动
  • 从后端发送 push kit payload
  • 一旦您在设备上获得有效载荷
  • 它会自动调用,调试指针会在委托(delegate)方法中调用。

enter image description here

Refer some material

关于ios - 可靠地传送 iOS VOIP 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548432/

相关文章:

iphone - 我的 reloaddata 调用没有调用 UItableviewcontroller 中的委托(delegate)方法?

javascript - AWS : Authorize users to specific clients

json - 如何将 XML 转换为 JSON AWS API Gateway?

amazon-web-services - 如何为 AWS Websocket API 网关添加自定义域?

android - 为什么我的手机模拟的是宽屏分辨率

objective-c - 我应该如何弹出到特定的 View Controller ?

ios - 即使我将其设置为空白,带有自定义图像的 UIButton 仍显示 titleLabel - Swift iOS

objective-c - 自定义 MKAnnotation 总是说它是一个 MKUserLocation 类

iphone - iOS 6 中的 ALAssetsLibrary 和位置服务

iphone - 旋转后重新定位UIWindow