2011-10-15 4 views
6

La mia app deve essere impostata nel Centro notifiche iOS 5 come "avvisi" e con "suoni" attivati. Da quello che ho trovato non è possibile per la tua app offrire impostazioni corrette, che sarebbe l'opzione migliore, quindi correggimi se sbaglio.rileva l'impostazione del centro notifiche

Quindi, sto cercando una procedura per rilevare le impostazioni correnti e avvisare l'utente se queste non sono corrette.

risposta

0

Questo non può essere fatto a livello di programmazione. E "registerForRemoteNotificationTypes" è per le notifiche remote (push), non locali.

L'unica cosa che sono stato in grado di fare è includere nella descrizione della mia app sull'app store una spiegazione su come impostare il Centro di notifica. L'ho anche inserito nel mio video dimostrativo.

Si potrebbe anche pensare di inviare un messaggio la prima volta che l'app viene lanciata, spiegando le impostazioni di notifica "corrette" per la propria app. Non mostrarlo nei successivi lanci, ma averlo a disposizione in una sezione "aiuto".

Certo, "ciò che è corretto" è ciò che l'utente desidera, ma per la mia app, gli utenti non hanno MAI voluto le impostazioni predefinite, che sono "banner". La migliore esperienza utente per la mia app è solo "suoni". Il più grande reclamo sulla mia app prima del Centro di notifica è stato il pop up delle notifiche locali. Ora, con Centro notifiche, gli utenti possono disattivare tutto tranne "suoni". Questa è l'impostazione che sembrano tutti desiderare. Perché non posso, come sviluppatore, darglielo come predefinito? Se vogliono cambiarlo in qualcos'altro, va benissimo, ma dovrei avere il controllo sulle impostazioni predefinite. Ma sto sbraitando.

+0

Non ho mai trovato come farlo se c'è un modo. (a volte troverai work around che non sono documentati) e concordi sul fatto che ci dovrebbe essere un mezzo per farlo, potrebbe richiedere un popup obbligatorio all'utente. "L'app vuole modificare le impostazioni di notifica, accetta?". Anche se penso che il ranting sia fuori dall'ambito dello stackoverflow ... –

0

Non penso che questo possa essere fatto a livello di programmazione.

È possibile specificare i messaggi che l'app può accettare al momento dell'avvio.

vorrei utilizzare questo nel delegato app, metodo didFinishLaunchingWithOptions

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 
0

pensare in questo modo: ciò che vuoi, come utente, pensa se ogni altra applicazione impostata su questi? (Certo, lo vuoi per la tua app. Ma non tutte le app sono buone come la tua.) O, se ogni altra app ti avvisasse ogni volta che veniva lanciata?

Impossibile, ed è per questo.

Come Nik ha detto, basta mettere tutto ciò che speri che l'utente abiliterà. Il sistema darà quindi all'utente la possibilità di consentire questo.

+0

grazie David, come detto, finora non l'ho trovato possibile. Quello che mi interessa è un mezzo per rilevare all'interno della mia app quali sono le impostazioni nel centro notifiche in modo da poter visualizzare un avviso all'utente se non è corretto. Quindi l'utente può quindi accedere al centro notif e correggere i cambiamenti. L'avviso sarebbe quindi andato se impostato correttamente. –

+1

"ciò che è corretto" per le notifiche è ciò che l'utente desidera, non ciò che si desidera che abbiano. Se tenti di forzare l'utente ad avere un particolare tipo di notifica per la tua app, sono sicuro che verrai respinto immediatamente da Apple. – BigSprocket

1

in realtà può essere fatto con il seguente metodo -

tipi UIRemoteNotificationType = [UIApplicationsharedApplication].enabledRemoteNotificationTypes;

mentre i tipi è

typedef enum 
{  
    UIRemoteNotificationTypeNone = 0, 
    UIRemoteNotificationTypeBadge = 1 << 0, 
    UIRemoteNotificationTypeSound = 1 << 1, 
    UIRemoteNotificationTypeAlert = 1 << 2, 
    UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3 
} 

in base a: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html Quindi, se volete sapere se l'utente ha approvato la vostra applicazione per le notifiche, tutto quello che dovete fare è quello di verificare se types >= 4 essere consapevole: questo non ti dirà se l'utente ha abilitato o disabilitato il centro notifiche per la tua app, ti dirà solo il TIPO della notifica che l'utente ha approvato

+0

Non riesco a farlo funzionare. Hai provato con l'ultimo iOS e l'hardware attuale? –

+0

Sì, e ha funzionato .. quale numero si ottiene per i tipi? –

+0

Sembra che '- (void) registerForRemoteNotificationTypes: (UIRemoteNotificationType) types' deve essere chiamato in modo che' enabledRemoteNotificationTypes' risponda a qualsiasi cosa tranne '0'. Questo è solo per push e non può essere utilizzato per le notifiche locali. – Jonny