是否可以通过发送静默推送来查询推送授权,并将其报告给我的服务器?我假设沉默推送不需要推送权限。
发布于 2021-03-29 05:50:27
算是吧,是的。如果您发送一个无声的推送通知,并且您的应用程序没有被强制杀死,那么它可以将更新发回给您的一些服务器,说它收到了通知。然而,如果用户手动退出应用程序,那么这些通知就会被操作系统丢弃,因此您无法判断。另外,您只需在应用程序上调用isRegisteredForRemoteNotifications来检查设备是否已注册。
更新
更清楚的是:不管是打开还是关闭任何东西,你都不能依赖于信息的传递。操作系统可能只是延迟了交付,或者根本跳过了它,你永远也不会知道。至少在服务器端没有。您的应用程序确实可以检查(一旦它再次运行)它收到了什么样的通知(它只需要做一些簿记),然后询问服务器它拥有的所有东西是否也是服务器有时发送的所有东西--但是这个逻辑必须由您来实现。
发布于 2021-03-29 09:38:14
静默推送通知不需要推送通知权限,但仍然可以通过关闭“后台应用程序刷新”来禁用它们:
Is Silent Remote Notifications possible if user has disabled push for the app?
在另一个应用程序运行时,做任何类型的后台网络请求都是一件需要消耗电池的事情。许多网站告诉用户禁用后台应用程序刷新,因为这些应用程序使用了大量的功能。不必要地使用此功能可能会引起人们对您的应用程序的注意,并让用户禁用此权限:
您只需检查启动应用程序时是否有推送通知权限,然后将其记录在那里。使用静默推送通知来跟踪用户设置是一件很奇怪的事情。现在每个人都对应用程序的追踪感兴趣,苹果也在想方设法告诉用户正在跟踪什么,这样做可能会给你的应用程序带来一些坏消息,如果它被发现的话。我不会安装像这样的应用程序,因为我会想,“当我的应用程序关闭时,他们还会跟踪什么?”
https://stackoverflow.com/questions/66849081
复制相似问题