我想为自己的 iOS 应用程序创建自己的推送通知机制。
我比较了一些服务,比如pushy.me或 Google Firebase。我认为 Pushy 是唯一可以独立于 Apple APN 推送通知的服务,但它使用简单的 HTTP 长轮询请求来接收通知(在 iOS SDK 中)。
但是 Firebase 是如何工作的呢?它仍然依赖于 Apple 的 APNs 吗?它将如何影响我的电池寿命?
我想为自己的 iOS 应用程序创建自己的推送通知机制。
我比较了一些服务,比如pushy.me或 Google Firebase。我认为 Pushy 是唯一可以独立于 Apple APN 推送通知的服务,但它使用简单的 HTTP 长轮询请求来接收通知(在 iOS SDK 中)。
但是 Firebase 是如何工作的呢?它仍然依赖于 Apple 的 APNs 吗?它将如何影响我的电池寿命?
Firebase Cloud Messaging (FCM) 通过 Apple 的推送通知服务向 iOS 设备发送推送通知。FCM 还扩展了推送通知的功能。FCM 如何扩展?
https://fcm.googleapis.com/fcm/send
使用参数执行请求;topic
发送通知。topic
很酷;此外,谷歌还有其他可以扩展 FCM 的服务。例如云函数。
我没有发现 FCM 集成对我的应用程序的电池寿命有很大影响。
更新:FCM 框架向 Google 服务发送推送通知令牌(和其他信息)。此外,正如我上面提到的,您可以为特定的topic
. 比 Google 知道需要向哪个设备发送推送。有可能在 iOS 中自动设置 FCM(使用方法 swizzling)。FCM 交换AppDelegate
方法并知道您的设备 pn 令牌。
Firebase 云消息传递 (FCM) 利用 APNs(Apple 推送通知服务)将消息传递到 iOS 设备。所以基本上,FCM 包装了 iOS 方法,例如registerForRemoteNotifications
或didReceiveRemoteNotification
使用方法调配(顺便说一句,如果你愿意,你可以禁用它,虽然我看不出任何原因......)。
在技术方面 - 手机与 APNs 保持开放连接,并且此隧道用于自己发送消息。