查询具体设备是否已送达,服务端提供了API 查询,需要registrationID 信息,如果你使用的服务端 SDK 不支持,请升级到最新版。
二、关于 iOS 的成功率iOS APNs 通知的成功数代表极光服务器成功发到 Apple 服务器的数据(不代表实际送达到手机上),目标数与成功数之差为失败数,失败的原因一般是 Apple 判断 token 失效了,App 已经卸载了、客户端配的 BundleID 和官网鉴权的 BundleID 不一致等。
对 Apple 判断已卸载的 App 数,会继续保留在目标数内 一段时间,定期会做清理;时间不定,开发者可能会观测到的情况是:某天同样条件下,目标数较前一天 少了许多,或者先成功数下降然后接着下一条消息的目标数下降,便是清理所致。(在未清理时,会出现目标数和成功数比实际有效目标多的情况)
从 iOS 10 ,极光 SDK 3.0.7 开始,支持 iOS 设备真实的送达数统计(Apple 服务器成功发给了 iOS 设备),此前开发者观测 成功数 即可。
该功能集成指南点我;API 说明点我
iOS 自定义消息的数据,在官网控制台,需要展开推送记录详情才看得到:「自定义目标 | 自定义送达」
自定义消息必须在前台才能收到,即与极光服务器建立了连接。
三、关于 Android 的成功率
- 普遍的疑问:Android 的成功率相较 iOS 的低太多。
答:Android 的通知和自定义消息的送达 不应与 iOS 的 APNs 通知做比较,而应与 iOS 的自定义消息做比较。
Android 的消息、iOS 的自定义消息,收到的前提条件都是 「与极光服务器建立起连接」;
而 iOS 的 APNs 通知,走的是 iOS APNs 系统通道,不论你的 App 是处于后台,还是杀死,APNs 通知都基本可以到达,因为他与你的 App 是否活跃无关,只与设备本身是否可以正常收通知(开机且网络正常且允许你通知)有关。
另:iOS 通知的成功数也不是实际送达设备的数据,是已成功发到 A