Firebase通知可以与APN共存吗?

时间:2016-12-19 12:15:11

标签: ios firebase push-notification apple-push-notifications firebase-cloud-messaging

我正在编写一个接收推送通知的iOS SDK。

到目前为止,我们已经让应用开发者给我们一个推送键,以便我们可以向应用发送推送消息。开发人员将一些路由代码添加到他们的APNs监听器中,简单实现 -

if push.hasKey('forSDK') and push['forSDK']:
    send_push_to_sdk
else:
    do_the_app_thing

这很乏味,需要在应用程序开发人员的令牌过期时与其进行协调。此外,我们发现using Firebase notifications for iOSconnecting to APNs简单得多。

有没有办法在App的APN旁边使用Firebase通知(用于SDK),以便我可以省略路由代码?

enter image description here

1 个答案:

答案 0 :(得分:2)

在接收方

如果托管应用使用直接APN,如果您不想让开发人员将路由逻辑添加到didReceiveRemoteNotification:,您有两种选择:

  1. 在SDK中实施- (BOOL)handleIncomingNotification:,让开发人员随时调用它,如下所示:

    BOOL handled = [AdamMatanSDK handleIncomingNotification:userInfo];
    if (!handled) {
        // developer does their own logic here (do_the_app_thing)
    }
    
  2. 或者您的SDK可以调整托管应用的应用代表didReceiveRemoteNotification:,以便在调用应用代理的原始方法之前检查通知。

  3. 在发送方:

    您可以直接将Firebase通知与APN一起使用,因为Firebase使用APN发送iOS推送通知。

    但是,如果您要通过APN向他们发送推送通知,您仍然需要您的开发人员让您更新他们的APN推送证书。如果现在这样做很乏味,那么您可以使用Firebase通知来节省一些乏味,因为您有一个GUI来管理证书。

    您可以在自己的Firebase控制台中管理这些证书,或者开发人员可以在其自己的 Firebase控制台中维护推送证书,并邀请您作为SDK开发人员访问其Firebase项目。无论哪种方式,您都会看到Firebase项目列表,并切换到它们以发送推送通知,或使用Firebase's Cloud Messaging HTTP API以编程方式将推送发送到每个Firebase项目。