如何在 IOS 上使用 FCM 检测卸载?

时间:2021-05-23 11:15:42

标签: ios node.js firebase-cloud-messaging apple-push-notifications

TL;DR

我正在使用 FCM 检测卸载。如果我在发送通知时收到 myGroup[2].remove(); myGroup.add(canvas.path('M 100 200 l 30 35').attr({stroke: '#050'})); ,则认为该应用已被卸载。

在 Android 上一切正常,而在 IOS 上我总是收到 NotRegistered token 响应,即使应用程序已卸载数天。

更多信息

我知道 read 可以使用 success 检测卸载,其中 Apple 报告任何非活动令牌。

我还在 Firebase 官方 documentation 上读到:

<块引用>

content_available - 在 iOS 上,使用此字段表示 APNs 负载中的内容可用。当发送通知或消息并将此设置为 true 时,会唤醒不活动的客户端应用,并且消息通过 APNs 作为静默通知而不是通过 FCM 连接服务器发送。

为了通过 APN 发送通知,我尝试使用 APNs feedback Service 发送推送通知,但我无法在 IOS 上重现 content_available: true 错误。它仍然返回 NotRegistered token 消息。

我正在使用 success 发送通知。我的有效载荷:

sendMulticast

我也无法通过 HTTP 请求重现 const payload = { notification: { title: text, }, android: { priority: "high", ttl: 60 * 60 * 1, collapseKey: "yo", notification: { channel_id: 'YO', tag: userDoc.id, }, }, apns: { payload: { aps: { sound: "reminder.caf", "content-available": 1, } }, headers: { "apns-collapse-id": "yo", "apns-priority": "10" } }, priority: 10 } 响应:

NotRegistered token

底线

1.如何使用 FCM 检测 IOS 卸载?
2. 如果不可能,我如何检测 IOS 上的卸载?

1 个答案:

答案 0 :(得分:0)

好吧,这取决于您的需求。您的问题的答案是无声推送不是正常推送。

后台通知是一种远程通知,不会显示警报、播放声音或标记应用图标。它会在后台唤醒您的应用程序,并让它有时间从您的服务器开始下载并更新其内容。 Apple Document


重要

<块引用>

系统将后台通知视为低优先级:您可以使用它们来刷新应用的内容,但系统不保证它们的交付。此外,如果总数过多,系统可能会限制后台通知的传递。系统允许的后台通知数量取决于当前情况,但不要尝试每小时发送超过两个或三个。

当设备处于“低”状态时,静音推送通知将不起作用 数据模式“.

静默推送通知负载示例。

  {
   "aps" : {
      "content-available" : 1
   },
   "acme1" : "bar",
   "acme2" : 42
}

您必须在有效载荷中使用 "content-available" : 1 以实现静默推送

另一方面,如果您的客户端运行 iOS 12.3 或更高版本Deletions metric

相关问题