我有APNs push notification
使用gcm
库的两个问题。
gcm
或fcm
是否有公开API 才能上传APNs certificates
?我需要自动而不是手动执行此操作。
似乎在gcm
中使用iOS app
库发送上游,仅在应用处于前台时才有效。这是对的吗?即使应用程序未打开或处于后台,是否有任何解决方法可以向上游发送?我想使用gcm
上游向我的服务器发送点击事件通知,最好立即执行此操作。
我知道我可以保存此点击事件并在应用变为活动时发送,但用户可能很长时间都无法打开该应用。
答案 0 :(得分:1)
1。 gcm或fcm是否有用于上传APNs证书的公共API?
目前没有用于上传APN证书的公共API。对于FCM(以及任何新项目),只能通过Firebase Console完成。此外,似乎现在使用证书上的APNs身份验证密钥似乎更方便(APNs Overview)。
2。似乎在iOS应用程序中使用gcm库发送上游,仅在应用程序位于前台时才有效。这是正确的吗?
是。上游消息传递必须有连接才能工作。
即使应用程序未打开或处于后台,是否有任何解决方法可以向上游发送?
AFAIK,没有。正如FCM doc(强调我的)所述:
要向服务器上游发送消息,iOS客户端应用程序会编写消息,连接到FCM并调用
sendMessage
。要进行连接,请在
shouldEstablishDirectChannel
中将YES
标记设置为AppDelegate
。 FCM管理连接,当您的应用进入后台时关闭它,并在应用程序被预设时重新打开它。...
FCM客户端库将消息缓存在客户端应用程序上,并在客户端具有活动服务器连接时发送该消息。收到消息后,FCM连接服务器会将其发送到应用服务器。
它提到FCM管理连接,但是AFAICT,iOS设备存在此限制,如果应用处于后台/关闭状态,则会限制应用维护正在运行的服务(请参阅此answer)。如果无法建立连接,则上游消息传递将无效。
作为一般惯例,通过FCM传递的数据应尽可能改善用户体验并且不会传递任何关键数据。
我知道我可以保存此点击事件并在应用变为有效时发送,但用户可能很长时间没有打开该应用。
这是可能的。但是,用户也不太可能在显示后立即点击推送通知。在这种情况下,通常的操作是用户在仍有打开的连接时立即点击通知。