【发布时间】:2025-11-26 05:05:02
【问题描述】:
是否可以通过发送静默推送来查询推送授权并将其报告回我的服务器? 我假设静默推送不需要推送权限。
【问题讨论】:
是否可以通过发送静默推送来查询推送授权并将其报告回我的服务器? 我假设静默推送不需要推送权限。
【问题讨论】:
有点,是的。如果您发送静默推送通知并且您的应用程序没有被强制终止,那么它可能会向您的某些服务器发回更新,说它收到了通知。
然而,如果用户手动退出应用程序,那么这些通知会被操作系统丢弃,因此您无法分辨。
此外,您只需在应用程序上调用isRegisteredForRemoteNotifications 即可检查设备是否已注册。
更清楚地说:打开或关闭任何东西都没有关系,您永远不能依赖消息的传递。操作系统可能只是延迟交付,或者根本跳过它,你永远不会知道。至少,不在服务器端。您的应用确实可以检查(一旦再次运行) 它收到了什么样的通知(它只需要做一些簿记),然后询问服务器它拥有的所有东西是否也是服务器有时发送的所有东西 - 但这个逻辑必须由你实现。
【讨论】:
静默推送通知不需要推送通知权限,但仍然可以通过关闭“后台应用刷新”来禁用它们:
Is Silent Remote Notifications possible if user has disabled push for the app?
在另一个应用程序运行时执行任何类型的后台网络请求是一项耗电的事情。许多网站告诉用户禁用使用大量电源的应用程序的后台应用程序刷新。不必要地使用此功能可能会引起对您应用的关注并让您的用户禁用此权限:
您可以简单地在应用启动时检查推送通知权限并将其记录在那里。使用静默推送通知来跟踪用户设置是一件很奇怪的事情。如今,每个人都对正在跟踪的应用程序感兴趣,并且苹果公司竭尽全力通知用户正在跟踪的内容,如果发现它,这样做可能会给您的应用程序带来一些负面影响。我不会安装这样的应用程序,因为我会想“当我的应用程序关闭时,他们还会跟踪什么”
【讨论】: