在集成到我的应用程序之前,我正在测试Apple Push Notification服务(沙盒模式)。我们可能会以每分钟数千个的速度发送推式通知-因此,一项主要要求是,如果应用被删除(或重新安装),则不向无效(已删除)设备令牌发送通知。
设备令牌,在以下位置接收:
application(_ application: UIApplication,didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
在特定于App安装中。新安装会创建一个新令牌,而前一个令牌将无效。
根据Apple's APNS document,发送过期的设备令牌请求应返回:
410该主题的设备令牌不再有效。
但是,对于有效和过期的设备令牌,我一直能获得200。正确的设备令牌的通知将发送到设备,而无效(过期)令牌的通知则不会。
我正在服务器端使用npm apn软件包,并在运行iOS 12.3的设备上进行测试。
我在这里想念东西吗?
答案 0 :(得分:0)
我也注意到了这一点。我通常会收到200的响应代码,以及以下无效/过期令牌的正文:
{
"multicast_id": 7942205170696355362,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "InvalidRegistration"
}
]
}
我假设您将必须解析响应正文并检查成功或失败计数,以确定通知是否实际传递。 如果失败,请从数据库(或存储要发送给令牌的位置)中删除此令牌,以免再次尝试将令牌发送到同一令牌。