2012-03-06 73 views
0

我创建了一个应用程序,它使用远程通知服务, 并且还准备了一个web服务来收集devicetoken和一些设备数据。 完美无缺地工作,没有问题。IOS:为什么devicetoken没有创建,当用户不允许远程通知

但是,我意识到一些奇怪的东西。 (当考虑远程通知服务的工作原理时,可能并不奇怪)

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

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

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

因此,在第一种情形下,如果 用户不允许远程通知,在开始时, 我怎么能叫didregisterforremotenotificationwithdevicetoken无devicetoken?

回答

0

如果用户不允许,你永远不会得到设备令牌(这就是为什么用户被问到的原因)。你也不能发送通知..
相反,你可以反应application:didFailToRegisterForRemoteNotificationsWithError:

另外要注意的是,设备令牌随时可能再生时间。

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

+0

阅读更多关于它,但是,我认为“didFailToRegisterForRemoteNotificationsWithError”将无法正常工作时,如果用户不允许远程通知。 – ytur 2012-03-06 11:27:40

相关问题