ios 如何从我们的服务器中找到Apple推送通知是否已发送给用户?

dgsult0t  于 6个月前  发布在  iOS
关注(0)|答案(3)|浏览(101)

我是新的苹果推送通知服务在iPhone应用程序。我已经学会了这些教程和苹果文档,

  • www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12
  • www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2

我们正在将通知从我们的服务器(PHP)推送到Apple推送通知服务器,APNS将把通知推送到设备。* 在这种情况下,我们如何知道通知是否已从我们的服务器成功发送给用户?如果我们向所有订阅用户发送通知(超过100个用户),我们可以为这100个用户提供一个发送报告吗?*

iq0todco

iq0todco1#

APNS不会告诉你消息是否成功发送。你可以得到的最接近的是轮询它的反馈服务,看看你的应用是否从设备上被删除。看看这个SO帖子,了解如何:PHP technique to query the APNs Feedback Server
你可以做的是让你的iOS应用在application:didReceiveRemoteNotification推送通知到达时记录一些东西,但这只有在你的应用在前台运行时才有效。

r1wp621o

r1wp621o2#

本地和推送通知指南说:
通知的传递是“尽最大努力”,不保证。
但是,存在文档中描述的反馈服务:
Apple推送通知服务包括一项反馈服务,APN会根据每个应用程序的设备列表不断更新,这些设备都有失败的交付尝试

62o28rlo

62o28rlo3#

2023年开始有可能

苹果在2023年推出了Push Notification Console,其中包括一系列功能和API。其中之一是访问交付日志,您可以通过提供apns-unique-id来获取通知的不同状态。
x1c 0d1x的数据
通过此功能,您甚至可以在某些情况下(例如Low Power mode is on)找到未交付的原因。所有交付日志(包括控制台和API)都可以在控制台的交付日志选项卡中找到:



通过常规APNs API发送的通知也可以使用此功能,您需要记录APNs响应中的**“apns-unique-id”**才能查询此信息。
请注意,对于从控制台发送的通知,不需要切换到“传递日志”选项卡,发送页面本身也提供了相同的信息:


相关问题