0

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

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

当用户第一次在设备上安装应用程序时,以及在第一次运行期间,会出现一个警告对话框,并询问用户是否接受远程通知。

我认为,如果用户不允许远程通知,则不会创建 devicetoken,因此,didregisterforremotenotificationwithdevicetoken此后永远不会调用方法。

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

所以,在第一种情况下,如果用户在开始时不允许远程通知,我如何在didregisterforremotenotificationwithdevicetoken没有 devicetoken 的情况下调用?

4

1 回答 1

0

如果用户不允许,您将永远不会获得设备令牌(这就是首先询问用户的原因)。您也不能发送通知。
相反,您可以对application:didFailToRegisterForRemoteNotificationsWithError:

另请注意,设备令牌可能会不时重新生成。

您可以在https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW2了解更多信息

于 2012-03-06T11:20:48.810 回答