voip app ios8:pushkit 仍然是最佳实践吗?

Posted

技术标签:

【中文标题】voip app ios8:pushkit 仍然是最佳实践吗?【英文标题】:voip app ios8: is pushkit still best practice? 【发布时间】:2015-09-24 11:46:47 【问题描述】:

我正在开发一个在 ios9 下需要可靠推送消息(如任何 voip)的应用程序。 这里说,对于 IOS8+,应该使用 apns (registerForRemoteNotifications):

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/instm/UIApplication/setKeepAliveTimeout:handler:

在优化 VOIP Apps 文档中,Pushkit 是首选:

https://developer.apple.com/library/ios/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html#//apple_ref/doc/uid/TP40015243-CH30-SW1

有人知道吗? 还是他们在后台运行相同的代码?

【问题讨论】:

【参考方案1】:

来自documentation for VoIP Push Notifications:

仅当 VoIP 推送发生时设备才会被唤醒,从而节省能源。 与标准推送通知不同,用户必须先响应 您的应用程序可以执行操作,VoIP 推送直接进入您的应用程序 进行处理。 VoIP 推送被视为高优先级通知 并立即交付。 VoIP 推送可以包含更多数据 比标准推送通知提供的内容。 您的应用是 如果在 VoIP 推送时未运行,则自动重新启动 收到了。 您的应用程序有运行时间来处理推送,即使您的 应用正在后台运行。

在我看来,VoIP 推送通知相对于常规通知的最大优势在于,如果应用程序被强制关闭,它会重新启动。

一般来说,如果您不想将推送通知用于 VoIP 功能,例如要通知来电,请使用 PushKit。它是为此目的而开发的。对于所有其他情况,请使用常规推送通知。如果您将 PushKit 用于没有 VoIP 功能的应用程序,您的应用程序将不会通过审核。

【讨论】:

嗨,我有一个具有 VOiP 功能的消息应用程序,我想知道我是否也可以使用 VOiP 推送来通知用户有关短信的信息?如果我这样做,Apple 会拒绝我的应用吗? 根据review guidelines,“应用程序只能将后台服务用于其预期目的”,但我猜,如果您的 VoIP 应用程序,它们不会检测到也将 PushKit 用于非 VoIP 相关的推送通知... 您好,您知道如何在服务器端实现VoIP推送吗? voip 是否与 APNs 推送共享相同的 API? @WhiteTherewasproblem 这里有一个很好的教程,涵盖了使用 3 种不同方法所需的服务器端代码。 github.com/Hitman666/ios-voip-push除此之外,我刚刚使用“PushSharp”.net nuget 包实现了服务器端推送代码,它运行良好。

以上是关于voip app ios8:pushkit 仍然是最佳实践吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Voip App 中使用带有背景的 pushkit

在 iOS8.0.2 上没有收到 Pushkit voip 推送通知

iOS push

直接在推送 iOS 上启动 App

iOS VoIP 推送通知 (PushKit)

iOS VoIP 推送通知/PushKit 不适用于增强通知格式