2010-08-27 29 views
7

Tratando de evitar algunos casos de esquina para cuando las notificaciones push se les niega en la aplicación y tengo dos preguntas:notificaciones push Permisos

1) ¿Hay una manera de restablecer si el usuario ha visto la solicitud de notificación emergente ¿arriba?

2) ¿Hay alguna forma de determinar si el usuario ha respondido que no a la solicitud de notificación?

Respuesta

5

1) No, a menos que haya alguna API privada que hace eso, pero eso no está permitido por Apple

2) La primera vez que se inicia la aplicación, después de llamar registerForRemoteNotificationTypes, se puede comprobar si didRegisterForRemoteNotificationsWithDeviceToken se llama. Si no es así, el usuario dijo "No, gracias".

+0

1) Lo que pensé. .. grumble 2) el único problema con eso es el lapso de tiempo entre registerForRemoteNotificationTypes y didRegisterForRemoteNotificationsWithDeviceToken no está definido. Podría verificarlo al salir de la aplicación, pero no estoy seguro de si el usuario tiene que hacer una elección antes de salir. También el usuario podría cambiar los permisos de notificación en Configuración y no puedo detectar ese cambio. –

5

Siempre se puede comprobar el estado de los permisos si el usuario los cambios, puede comprobar en 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"); 
     } 
    } 

} 

actualizado para que funcione en iOS 8 también

+0

De los documentos parece que eso se establecería si solicitara el permiso de alerta, incluso si el usuario había desactivado las alertas para su aplicación. –

+0

No entiendo lo que quiere decir, esto no establece nada, solo comprueba el estado de permiso – jcesarmobile

+0

. Estaba pensando que solo informaría los permisos que solicitó para registrarse anteriormente, pero en posteriores pruebas creo que tiene razón, informa solo los permisos que el sistema otorgó. –

Cuestiones relacionadas