Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IOS上使用FCM检测卸载? TL;博士_Ios_Node.js_Firebase Cloud Messaging_Apple Push Notifications - Fatal编程技术网

如何在IOS上使用FCM检测卸载? TL;博士

如何在IOS上使用FCM检测卸载? TL;博士,ios,node.js,firebase-cloud-messaging,apple-push-notifications,Ios,Node.js,Firebase Cloud Messaging,Apple Push Notifications,我正在使用FCM检测卸载。如果我在发送通知时收到notregisted令牌,我假设应用程序已卸载 安卓的一切都很好,而在IOS上,我总是得到成功的响应,即使应用已经卸载了好几天 更多信息 我知道,可以使用APNs反馈服务检测卸载,苹果会报告任何不活动的代币 我还在Firebase官方网站上读到: 内容可用-在iOS上,使用此字段表示APNs有效负载中可用的内容。当发送通知或消息并将其设置为true时,将唤醒非活动客户端应用程序,消息将通过APN作为静默通知发送,而不是通过FCM连接服务器发送 为

我正在使用FCM检测卸载。如果我在发送通知时收到
notregisted令牌
,我假设应用程序已卸载

安卓的一切都很好,而在IOS上,我总是得到
成功
的响应,即使应用已经卸载了好几天

更多信息 我知道,可以使用APNs反馈服务检测卸载,苹果会报告任何不活动的代币

我还在Firebase官方网站上读到:

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

为了通过APN发送通知,我尝试使用
content\u 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上检测卸载?

好吧,这取决于您的需求。您的问题的答案是轻微推压不是正常推压

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


重要

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

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

Slient推送通知负载示例

  {
   "aps" : {
      "content-available" : 1
   },
   "acme1" : "bar",
   "acme2" : 42
}
您必须在有效负载中使用“内容可用”:1进行静默推送


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

Gursrs,感谢您的回复。我在问题中已经提到了可用的
内容
后台消息。问题是我无法在卸载的应用程序上重现
NotRegistered
响应。您知道为什么会发生这种情况吗?您曾经收到过
notRegis吗是否通过IOS设备使用FCM进行响应?