2012-03-06 6 views
0

Я создал приложение, которое использует службу удаленных уведомлений, , а также подготовит веб-службу для сбора девицекенов и некоторых данных устройства. работает безупречно, проблем нет.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