【问题标题】:How to detect uninstall using FCM on IOS?如何在 IOS 上使用 FCM 检测卸载?
【发布时间】:2021-08-11 23:51:39
【问题描述】:

TL;DR

我正在使用 FCM 检测卸载。如果我在发送通知时收到NotRegistered token,我认为该应用程序已被卸载。

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

更多信息

我有read,可以使用APNs feedback Service 检测卸载,Apple 会报告任何非活动令牌。

我还在 Firebase 官方 documentation 上看到:

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

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

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

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
}

我也无法通过 HTTP 请求重现 NotRegistered token 响应:

curl -X POST \
  https://fcm.googleapis.com/fcm/send \
  -H 'authorization: key=server_key_here' \
  -H 'content-type: application/json' \
  -d '{
  "to": "fcm_token_here", 
  "priority": "high",
  "content_available": true,
  "notification": {
    "empty": "body"
  },
  "data": {
    "key1": ""
  }
}'

底线

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

【问题讨论】:

  • 我在引用相同的资源后遇到了同样的问题。你有没有发现如何解决它?
  • 不幸的是还没有:/

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


【解决方案1】:

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

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


重要

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

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

无声推送通知负载示例。

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

您必须在有效负载中使用 "content-available" : 1 以进行无提示推送

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

【讨论】:

  • Gursrs 感谢您的回复。我已经在我的问题中提到了content-available 背景消息。问题是我无法在已卸载的应用程序上重现 notRegitered 响应。你知道为什么会这样吗?您是否曾经通过 IOS 设备使用 FCM 收到 notRegistered 响应?
猜你喜欢
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 2015-01-13
  • 2012-04-11
  • 2021-03-31
相关资源
最近更新 更多