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

问题描述 投票:0回答:3

我不熟悉 iPhone 应用程序中的 Apple 推送通知服务。我已经学会了这些教程和苹果文档,

  • 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 个用户的递送报告吗?

iphone ios apple-push-notifications apns-php
3个回答
14
投票

APNS 不会告诉您消息是否已成功传递。最接近的方法是轮询其“反馈服务”,以查看您的应用程序是否已从设备上卸载。查看这篇 SO 帖子,了解如何使用:PHP 技术查询 APNs 反馈服务器 您可以做的是让您的 iOS 应用程序在收到带有

application:didReceiveRemoteNotification

的推送通知时记录一些内容,但这仅在您的应用程序在前台运行时才有效。

    


4
投票
本地和推送通知指南

说:

我们会“尽最大努力”发送通知,但无法保证。

但是,文档中存在反馈服务,描述为:

Apple 推送通知服务包括 APNs 提供的反馈服务 不断更新每个应用程序的设备列表 尝试投递失败


0
投票

Apple 在 2023 年推出了

推送通知控制台

,其中包含大量功能和 API。其中之一是访问传递日志,您可以通过提供apns-unique-id来获取通知的不同状态。

Monitor Delivery Metrics通过此功能,您可以找出

为什么

在某些情况下(例如当低功耗模式打开时)未交付。所有传输日志(包括控制台和 API)都可以在控制台的“传输日志”选项卡中找到:

Console Demo此功能也适用于通过常规 APNs API 发送的通知。您需要从 APNs 响应中记录

“apns-unique-id”

才能查询此信息。

⚠️ 请注意,对于从控制台发送的通知,无需切换到“发送日志”选项卡,发送页面本身也提供相同的信息:

Console Demo 2

© www.soinside.com 2019 - 2024. All rights reserved.