IOS:当用户不允许远程通知时,为什么没有创建devicetoken

IOS:当用户不允许远程通知时,为什么没有创建devicetoken,ios,apple-push-notifications,devicetoken,Ios,Apple Push Notifications,Devicetoken,我创建了一个使用远程通知服务的应用程序, 并准备一个web服务来收集devicetoken和一些设备数据。 工作完美无瑕,没有问题 但是,我意识到一些奇怪的事情。(也许在考虑远程通知服务的工作原理时,它并不奇怪) 当用户第一次在设备上安装应用程序时, 在第一次运行期间,会出现一个警报对话框,要求用户接受远程通知 我认为,如果用户不允许远程通知,则不会创建devicetoken, 结果,didRegisterforRemotionTificationwithDeviceToken方法从此不再调用

我创建了一个使用远程通知服务的应用程序, 并准备一个web服务来收集devicetoken和一些设备数据。 工作完美无瑕,没有问题

但是,我意识到一些奇怪的事情。(也许在考虑远程通知服务的工作原理时,它并不奇怪)

当用户第一次在设备上安装应用程序时, 在第一次运行期间,会出现一个警报对话框,要求用户接受远程通知

我认为,如果用户不允许远程通知,则不会创建devicetoken, 结果,
didRegisterforRemotionTificationwithDeviceToken
方法从此不再调用

但是,若用户在应用程序第一次运行时允许通知,则会创建
devicetoken
。 当用户运行应用程序时,
didregisterforremotenotificationwithdevicetoken
方法调用, 甚至用户也可以稍后在通知中心关闭所有远程通知

所以,在第一个场景中, 如果用户在开始时不允许远程通知,
如果没有devicetoken,我如何调用
didRegisterWithDeviceToken进行删除通知

如果用户不允许,您将永远无法获得设备令牌(这就是为什么首先询问用户)。您也不能发送通知。。
相反,您可以对以下错误作出反应:
application:DidFailToRegister for RemoteNotifications

还应注意,设备令牌可能会不时重新生成

您可以在

上了解更多信息,但我认为,如果用户不允许远程通知,则“didFailToRegisterForRemoteNotificationsWithError”将不起作用。