didRegisterForRemoteNotificationsWithDeviceToken llamó dos veces?

Algo similar a Cuándo es didRegisterForRemoteNotificationsWithDeviceToken llamado? .

Cuando el usuario instaló por primera vez la aplicación y le pregunta si acepta la notificación, ¿se didRegisterForRemoteNotificationsWithDeviceToken si el usuario lo acepta?

Actualmente estoy llamando a registerForRemoteNotificationTypes después de que el usuario se registerForRemoteNotificationTypes éxito o cree una count.

En posteriores lanzamientos, se didRegisterForRemoteNotificationsWithDeviceToken delegado didRegisterForRemoteNotificationsWithDeviceToken incluso sin llamar a registerForRemoteNotificationTypes en AppDelegate.

Si sigo los documentos y el código de ejemplo:

Al solicitar el token del dispositivo y pasarlo al proveedor cada vez que se inicie su aplicación, ayudará a garantizar que el proveedor tenga el token actual para el dispositivo.

 - (void)applicationDidFinishLaunching:(UIApplication *)app { // other setup tasks here.... [[UIApplication shanetworkingApplication] registerForRemoteNotificationTypes:... } 

Pero al solicitar el token cuando se inicia la aplicación, el delegado será llamado dos veces.

Se necesitan algunas preguntas y claridad:

  1. Para que suceda el post inicial, se debe hacer una llamada para registerForRemoteNotificationTypes para que aparezca el post? Pero, el delegado será llamado dos veces si llamo esto manualmente en AppDelegate. ¿Se supone que así sea?

  2. Si el usuario acepta el post inicial, ¿se didRegisterForRemoteNotificationsWithDeviceToken automáticamente didRegisterForRemoteNotificationsWithDeviceToken ? ¿O debemos invocar registerForRemoteNotificationTypes en AppDelegate? ¿Pero entonces el delegado será llamado dos veces para futuros lanzamientos?

  3. Si el usuario niega y luego lo acepta a través de Configuración, ¿qué sucede?

ACTUALIZAR

0. Para que suceda el post inicial, se debe hacer una llamada para registerForRemoteNotificationTypes para que aparezca el post? Pero, el delegado será llamado dos veces si llamo esto manualmente en AppDelegate. ¿Se supone que así sea? Esto no es cierto Descubrió que en realidad había 2 registerForRemoteNotiicationTypes en AppDelegate.

Si el usuario acepta el post inicial, ¿se registrará automáticamente RegisterForRemoteNotificationsWithDeviceToken? No, su process de logging de notificación remota comienza cuando se hace clic en 'permitir acceso', pero el método RegisterForRemoteNotificationsWithDeviceToken se invoca solo en el logging exitoso de APNS.

Si su aplicación se ha registrado previamente, llamando a registerForRemoteNotificationTypes: hace que el sistema operativo transfiera el token del dispositivo al delegado de inmediato sin incurrir en gastos adicionales

Puede determinar si se lanza una aplicación como resultado de que el usuario presiona el button de acción o si la notificación se entregó a la aplicación ya ejecutada examinando el estado de la aplicación. En la implementación del delegado de la aplicación: didReceiveRemoteNotification: o application: didReceiveLocalNotification: method, obtenga el valor de la propiedad applicationState y evalúelo. Si el valor es UIApplicationStateInactive, el usuario tocó el button de acción; si el valor es UIApplicationStateActive, la aplicación estaba al primer plano cuando recibió la notificación.

Nope. este método solo se llama una vez al iniciar la aplicación. Si se llama dos veces, se llamará desde su código. Intenta ver que si estás poniendo código como

 [application registerUserNotificationSettings:mySettings]; [application registerForRemoteNotifications]; 

en didFinishLaunchingWithOptions

luego en ir a

 - (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings 

es que podría estar llamando [application registerForRemoteNotifications];

entonces elimine este código.