我正在开发一个带有推送通知的应用程序。为了检查所有可能的用户交互方式,我想在用户在第一次启动时拒绝为我的应用启用推送通知时测试我的应用。
但是,对话框(由 启动registerForRemoteNotificationTypes)在每个应用程序中仅出现一次。如何重置我的应用程序的 iPhone OS 内存。删除应用程序并重新安装没有帮助。
registerForRemoteNotificationTypes
技术说明 TN2265:推送通知故障排除
启用推送的应用第一次注册推送通知时,iOS 会询问用户是否希望接收该应用的通知。一旦用户对此警报做出响应,除非设备已恢复或应用程序已卸载至少一天,否则它不会再次显示。 如果你想模拟你的应用程序的首次运行,你可以让应用程序卸载一天。 您可以通过将系统时钟提前一天或更长时间,完全关闭设备,然后重新打开设备来实现后者,而无需实际等待一天。
启用推送的应用第一次注册推送通知时,iOS 会询问用户是否希望接收该应用的通知。一旦用户对此警报做出响应,除非设备已恢复或应用程序已卸载至少一天,否则它不会再次显示。
如果你想模拟你的应用程序的首次运行,你可以让应用程序卸载一天。 您可以通过将系统时钟提前一天或更长时间,完全关闭设备,然后重新打开设备来实现后者,而无需实际等待一天。
更新: 如以下评论中所述,此解决方案自 iOS 5.1 起停止工作。我鼓励向 Apple 提交错误,以便他们可以更新他们的文档。当前的解决方案似乎是重置设备的内容和设置。
更新: 技术说明已更新为从 iOS 7 开始可以正常工作的新步骤。
从设备中删除您的应用程序。 完全关闭设备并重新打开。 前往“设置”>“通用”>“日期和时间”,将日期提前一天或更长时间。 再次完全关闭设备,然后重新打开。
从 iOS 9 开始更新
只需删除并重新安装应用程序即可将通知状态重置为notDetermined(意味着会出现提示)。
notDetermined