permission objective notification example swift notifications local uilocalnotification

swift - objective - ¿Las notificaciones locales necesitan permiso del usuario en iOS?



swift local notification (5)

La documentación de Apple para presentLotNotificationNow actual y scheduleLotNotification dice,

Antes de programar cualquier notificación local, debe llamar al método registerUserNotificationSettings: para que el sistema sepa qué tipo de alertas, si las hay, planea mostrar al usuario.

Por lo tanto, no estoy seguro de cómo otros en esta página dicen que las notificaciones locales no necesitan permisos de usuario.

Echa un vistazo a esta otra discusión sobre el mismo tema:

Solicite permiso de usuario para recibir notificaciones de UILocal en iOS 8

Estoy usando UILocalNotification en mi aplicación para programar notificaciones. Las notificaciones funcionan bien y se muestran cuando quiero que lo hagan. No tengo un problema con eso. No estoy haciendo ninguna notificación remota / push.

Lo que me hizo preguntarme es que nunca vi el famoso cuadro de diálogo de permisos que normalmente se ve para las notificaciones push en varias aplicaciones. Incluso reinicié mi dispositivo y ejecuté mi aplicación. Eso todavía no causó que el diálogo de permiso apareciera.

¿Este cuadro de diálogo de permiso no se muestra si su aplicación está usando solo notificaciones locales o no estoy implementando algún método que realmente haga que la aplicación solicite este permiso?

Sé que pude implementar mi propio cuadro de diálogo después de que se inició la aplicación que solicitó este permiso al usuario, pero esperaba que Apple se encargara de eso, especialmente porque trata las notificaciones remotas y locales de la misma manera en la aplicación Configuración.


NOTA: esto incluye notificaciones push / notificaciones remotas

cuando se usa Xcode6 con iOS7 o prueba de iOS8 cuando registerUserNotificationSettings: API está disponible en tiempo de ejecución.

if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; }

Gracias a http://corinnekrych.blogspot.ae/2014/07/how-to-support-push-notification-for.html


Parece que las notificaciones locales no necesitan ningún permiso del usuario. El cuadro de diálogo Permiso solo aparece para las Notificaciones Push. Puedo programar / cancelar notificaciones locales sin el permiso de ningún usuario.


Sí, en iOS8, las notificaciones locales requieren permisos.

La documentación para registerUserNotificationSettings: estipula que

If your app displays alerts, play sounds, or badges its icon while in the background, you must call this method during your launch cycle to request permission to alert the user in those ways. Typically, you make this request If your app displays alerts, play sounds, or badges its icon while in the background, you must call this method during your launch cycle to request permission to alert the user in those ways. Typically, you make this request si su aplicación utiliza notificaciones locales or push to alert the user to new information involving your app.

It is recommended that you llame a este método antes de programar cualquier notificación local or register with the push notification service.


Si eso es correcto. Las notificaciones locales no necesitan ningún permiso del sistema operativo. Sin embargo, como una buena práctica, sugeriría dar una opción de exclusión para el usuario en tales casos desde su aplicación. Esto funcionaría bien de dos maneras:

  1. Un usuario molesto, que se siente frustrado por ver la notificación local pero una y otra vez, no saber la diferencia entre la notificación Push / Local podría dejar una mala crítica en la tienda de aplicaciones.
  2. Siempre es una buena práctica proporcionar indicadores para activar / desactivar dicha funcionalidad para un usuario determinado.