2010-08-27 25 views
7

Cercando di aggirare alcuni casi d'angolo per quando le notifiche push sono negate nella app e ho due domande:notifiche push Permessi

1) C'è un modo per ripristinare se l'utente ha visto la richiesta di notifica pop su?

2) Esiste un modo per determinare se l'utente ha detto no alla richiesta di notifica?

risposta

5

1) No, a meno che non ci sia qualche privato API che lo fa, ma che non è permesso da Apple

2) La prima volta che si avvia la vostra applicazione, dopo aver chiamato registerForRemoteNotificationTypes, è possibile controllare se didRegisterForRemoteNotificationsWithDeviceToken è chiamato. Se non lo è, l'utente ha risposto "No grazie".

+0

1) Quello che ho pensato. .. brontolare 2) l'unico problema è che l'intervallo di tempo tra registerForRemoteNotificationTypes e didRegisterForRemoteNotificationsWithDeviceToken non è definito. Potrei controllarlo all'uscita dall'app, ma non sono sicuro che l'utente debba fare una scelta prima di uscire. Inoltre, l'utente può modificare le autorizzazioni di notifica in Impostazioni e non è possibile rilevare tale modifica. –

5

È sempre possibile verificare lo stato delle autorizzazioni se l'utente li cambia, li potete verificare applicationDidBecomeActive

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) { 
     if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]){ 
      NSLog(@"Notifications Enabled ios 8"); 
     } else { 
      NSLog(@"Notifications not Enabled ios 8"); 
     } 
    } else { 
     UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; 
     if (types & UIRemoteNotificationTypeAlert) 
     { 
      NSLog(@"Notifications Enabled"); 
     } 
     else 
     { 
      NSLog(@"Notifications not Enabled"); 
     } 
    } 

} 

aggiornato per farlo funzionare su iOS 8 troppo

+0

Dai documenti sembra che sarebbe stato impostato se avessi chiesto il permesso di avviso, anche se l'utente aveva disabilitato gli avvisi per la tua app. –

+0

Non capisco cosa intendi, questo non imposta nulla, controlla solo lo stato del permesso – jcesarmobile

+0

Stavo pensando che avrebbe appena riportato le autorizzazioni che avevi chiesto di registrare in precedenza, ma in ulteriori test penso che tu abbia ragione, riporta solo le autorizzazioni concesse al sistema. –