【问题标题】:How Firebase push notification work on IOS?Firebase 推送通知如何在 IOS 上工作?
【发布时间】:2018-09-09 16:09:53
【问题描述】:

我想为自己的 iOS 应用程序创建自己的推送通知机制。

我比较了一些服务,例如 pushy.me 或 Google Firebase。我认为 Pushy 是唯一可以独立于 Apple APN 推送通知的服务,但它使用简单的 HTTP 长轮询请求来接收通知(在 iOS SDK 中)。

但 Firebase 是如何工作的?它仍然依赖于 Apple 的 APNs 吗?它将如何影响我的电池寿命?

【问题讨论】:

标签: push-notification google-cloud-messaging apple-push-notifications pushy


【解决方案1】:

Firebase 云消息传递 (FCM) 通过 Apple 的推送通知服务向 iOS 设备发送推送通知。 FCM 还扩展了推送通知的功能。 FCM 如何扩展?

  • FCM 适用于 iOS 和 Android。如果您拥有适用于两个平台的应用,那么该功能很酷;
  • 无需开发用于发送通知、存储 pn 令牌等的后端。只需在 Google Developer Console 中注册您的应用程序并遵循用户指南即可。要发送推送,只需使用参数向https://fcm.googleapis.com/fcm/send 执行请求;
  • 广播通知。该应用订阅了topic,然后您可以向所有topic 订阅者发送通知。很酷;
  • 上游消息(向服务器发送数据)

Google 还提供其他服务,您可以使用它来扩展 FCM。例如云函数。

我没有发现 FCM 集成对我的应用的电池寿命有很大影响。

更新: FCM 框架将推送通知令牌(和其他信息)发送到 Google 服务。此外,正如我上面提到的,您可以为特定的topic 订阅应用程序。比 Google 知道需要向哪个设备发送推送。 有可能在 iOS 中自动设置 FCM(使用方法 swizzling)。 FCM 交换AppDelegate 方法并知道您的设备 pn 令牌。

【讨论】:

    【解决方案2】:

    Firebase 云消息传递 (FCM) 使用 APN(Apple 推送通知服务)将消息传递到 iOS 设备。 所以基本上,FCM 使用方法 swizzling 包装了 iOS 方法,如 registerForRemoteNotificationsdidReceiveRemoteNotification(顺便说一句,如果你愿意,你可以禁用它,虽然我看不出任何原因......)。

    在技术方面 - 手机与 APN 保持开放连接,并且此隧道用于自行发送消息。

    【讨论】:

      猜你喜欢
      • 2019-06-04
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 2018-06-18
      • 2020-01-31
      • 1970-01-01
      相关资源
      最近更新 更多