【发布时间】:2013-03-15 12:42:05
【问题描述】:
我在测试我的iOS应用时发现了一件有趣的事情,即使我的手机处于飞行模式并且我也关闭了WIFI,我的应用在注册推送通知后能够接收设备令牌。
即使在从 iPhone 中删除应用程序及其相关证书之后,我也尝试过。
但得到了相同的结果。
这怎么可能,有什么想法吗?
提前致谢。
【问题讨论】:
标签: ios push-notification apple-push-notifications devicetoken
我在测试我的iOS应用时发现了一件有趣的事情,即使我的手机处于飞行模式并且我也关闭了WIFI,我的应用在注册推送通知后能够接收设备令牌。
即使在从 iPhone 中删除应用程序及其相关证书之后,我也尝试过。
但得到了相同的结果。
这怎么可能,有什么想法吗?
提前致谢。
【问题讨论】:
标签: ios push-notification apple-push-notifications devicetoken
这是来自 APNS 编程指南:
通过请求设备令牌并将其传递给提供者 在您的应用程序启动时,您可以帮助确保提供商 具有设备的当前令牌。如果用户将备份还原到 为其创建备份的设备或计算机以外的设备或计算机 (例如,用户将数据迁移到新设备或计算机),他 或者她必须至少启动一次应用程序才能接收 再次通知。如果用户将备份数据恢复到新设备 或计算机,或重新安装操作系统,设备令牌 变化。此外,切勿缓存设备令牌并将其提供给您的 提供者;始终在需要时从系统获取令牌。 如果您的应用程序之前已注册,则调用 registerForRemoteNotificationTypes: 会导致操作系统 立即将设备令牌传递给委托人,而不会导致 额外的开销。
这意味着如果您的应用程序已注册推送通知,则调用 registerForRemoteNotificationTypes 不会访问 APNS 服务器。
您卸载该应用并不会从 APNS 取消注册。您可以通过在卸载应用程序后立即调用反馈服务来向自己证明这一点。在这种情况下,您不会从反馈服务中获取设备令牌,因为 APN 服务不知道您卸载了该应用程序。只有在您卸载应用后向设备发送通知时,APN 服务才会知道应用已被卸载。
【讨论】: