2013-04-16 9 views
18

Sto utilizzando UILocalNotification nella mia app per pianificare le notifiche. Le notifiche funzionano bene e appaiono quando voglio. Non ho un problema con quello. NON sto facendo alcuna notifica remota/push.Le notifiche locali richiedono l'autorizzazione dell'utente su iOS?

Quello che mi chiedevo è che non ho mai visto la famosa finestra delle autorizzazioni che di solito vedi per le notifiche push in diverse app. Ho persino ripristinato il mio dispositivo e ho eseguito la mia app. Ciò non ha ancora causato la visualizzazione della finestra di dialogo delle autorizzazioni.

Questa finestra di dialogo di autorizzazione non viene visualizzata se l'app utilizza solo notifiche locali o non sto implementando un metodo che causa effettivamente l'autorizzazione di questa autorizzazione?

So che potrei implementare la mia finestra di dialogo dopo l'avvio dell'app che ha chiesto all'utente questo permesso, ma speravo che Apple si prendesse cura di questo, soprattutto dal momento che tratta le notifiche remote e locali nello stesso modo nell'app Impostazioni.

risposta

4

NOTA: questo include notifiche push/notifiche remote

utilizzando Xcode6 con iOS7 o iOS 8 prova quando registerUserNotificationSettings: API è disponibile in fase di esecuzione.

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)]; 
} 

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

11

Sembra che le notifiche locali non necessitino dell'autorizzazione dell'utente. La finestra di dialogo Permission si presenta solo per le notifiche push. Sono in grado di pianificare/annullare le notifiche locali senza autorizzazione dell'utente.

+0

stesso qui: guardando il nuovo iOS10 UserNotificationsCenter - le notifiche locali sono in programma senza alcun punto di accesso. –

2

Sì, è corretto. Le notifiche locali non necessitano di autorizzazioni del sistema operativo. Tuttavia, come buona pratica, suggerirei di fornire un'opzione di disattivazione per l'utente in questi casi dalla tua applicazione. Questo potrebbe funzionare bene in due modi:

  1. un utente infastidito, ottenendo frustrato a causa di vedere ancora il momento & volta la notifica locale, non conoscere la differenza tra Push/notifica locale potrebbe lasciare una recensione negativa su App Store.
  2. È sempre buona norma fornire i flag per attivare/disattivare tali funzionalità per un determinato utente.
+0

D'accordo! La nostra app ha l'opzione hat :) – RPM

13

Sì, in iOS8, le notifiche locali richiedono autorizzazioni.

The documentation per registerUserNotificationSettings: stabilisce che

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 requestse la vostra applicazione utilizza localior pushnotificheto alert the user to new information involving your app.

It is recommended that youchiamata di questo metodo prima di pianificare le notifiche localior register with the push notification service.

2

la documentazione di Apple per presentLocalNotificationNow e scheduleLocalNotification dice,

Prima della pianificazione di eventuali notifiche locali, è necessario chiamare il registerUserNotificationSettings: metodo per lasciare che il sistema di sapere quali tipi di avvisi, se ce ne sono, si prevede di visualizzare all'utente.

Quindi non sono sicuro di come gli altri in questa pagina stanno dicendo che le notifiche locali non hanno bisogno di autorizzazioni utente.

Checkout quest'altra discussione sullo stesso argomento:

Ask for User Permission to Receive UILocalNotifications in iOS 8

+0

Questo sembra essere applicato in iOS 9 e versioni successive. –

Problemi correlati