Un po 'simile a When is didRegisterForRemoteNotificationsWithDeviceToken called?.didRegisterForRemoteNotificationsWithDeviceToken ha chiamato due volte?
Quando l'utente primo ha installato l'app e richiede se accettare la notifica, verrà chiamato didRegisterForRemoteNotificationsWithDeviceToken
se l'utente lo accetta?
Attualmente sto chiamando registerForRemoteNotificationTypes
dopo che l'utente ha eseguito correttamente l'accesso o creato un account.
In successivi lanci, il delegato didRegisterForRemoteNotificationsWithDeviceToken
viene chiamato anche senza chiamare registerForRemoteNotificationTypes
in AppDelegate.
Se seguo la documentazione e codice di esempio:
Richiedendo il dispositivo token e passarlo al fornitore ogni volta che il lancio dell'applicazione, è contribuire a garantire che il provider ha il token corrente per il dispositivo .
- (void)applicationDidFinishLaunching:(UIApplication *)app {
// other setup tasks here....
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:...
}
Ma richiedendo il token quando i lanci di app, il delegato saranno chiamati due volte.
Un paio di domande e la chiarezza necessaria:
Per l'iniziale richiesta di accadere, un invito a
registerForRemoteNotificationTypes
deve essere fatto per la richiesta di apparire? Ma il delegato verrà chiamato due volte se lo chiamo manualmente in AppDelegate. Supponiamo che sia così?Se l'utente accetta il prompt iniziale, verrà chiamato automaticamente
didRegisterForRemoteNotificationsWithDeviceToken
? O dobbiamo invocareregisterForRemoteNotificationTypes
in AppDelegate? Ma poi il delegato verrà chiamato due volte per i lanci futuri?Se l'utente nega e successivamente lo accetta tramite Impostazione, cosa succede?
UPDATE
0. Per l'iniziale richiesta di accadere, un invito a registerForRemoteNotificationTypes
deve essere fatto per la richiesta di apparire? Ma il delegato verrà chiamato due volte se lo chiamo manualmente in AppDelegate. Supponiamo che sia così?Questo non è vero. Ho scoperto che c'erano effettivamente 2 registerForRemoteNotiicationTypes
in AppDelegate.
Ok. Sarà chiamato solo se l'utente accetta il prompt e una registrazione corretta? Altrimenti verrà chiamato il metodo di errore? Cosa succede se l'utente rifiuta il prompt, verrà chiamato il metodo di errore? –
Se l'utente rifiuta il prompt, non ha avviato il processo di registrazione APNS e il metodo di errore non verrà mai chiamato. didFailToRegisterForRemoteNotificationsWithError metodo viene chiamato solo in caso di errore di registrazione. – thatzprem