2011-10-15 16 views
6

Mi aplicación debe configurarse en iOS 5 Notification Center como 'alertas' y con 'sonidos' activados. Por lo que he descubierto, no es posible que su aplicación ofrezca configurarlo correctamente, lo cual sería la mejor opción, así que corríjanme si estoy equivocado.detectar la configuración del centro de notificación

Por lo tanto, estoy buscando un procedimiento para detectar la configuración actual y advertir al usuario si estos no son correctos.

Respuesta

0

Esto no puede hacerse mediante programación. Y "registerForRemoteNotificationTypes" es para notificaciones remotas (push), no locales.

Lo único que he podido hacer es incluir en la descripción de mi aplicación en la tienda de aplicaciones una explicación sobre cómo configurar el Centro de notificaciones. También lo puse en mi video de demostración.

También puede pensar en poner un aviso la primera vez que se inicia la aplicación explicando la configuración de notificación "correcta" para su aplicación. No lo muestres en lanzamientos posteriores, pero tenlo disponible en una sección de "ayuda".

Claro, "lo que es correcto" es lo que el usuario quiere, pero para mi aplicación, los usuarios NUNCA han querido la configuración predeterminada, que es "banners". La mejor experiencia de usuario para mi aplicación es solo "sonidos". La queja más importante sobre mi aplicación antes del Centro de notificaciones era las ventanas emergentes de las notificaciones locales. Ahora, con el Centro de notificaciones, los usuarios pueden apagar todo excepto los "sonidos". Ese es el escenario que todos parecen querer. ¿Por qué no puedo, como desarrollador, solo dárselos por defecto? Si quieren cambiarlo a otra cosa, es genial, pero debería tener control sobre la configuración predeterminada. Pero estoy despotricando.

+0

Nunca encontré cómo hacer esto si hay una manera. (a veces encontrará soluciones alternativas que no están documentadas) Y acuerda que debería haber un medio para hacer esto, podría requerir una ventana emergente obligatoria para el usuario. "La aplicación quiere modificar su configuración de notificación, ¿de acuerdo?". Aunque creo que el ranting está fuera del alcance de stackoverflow ... –

0

No creo que esto pueda hacerse mediante programación.

Puede estipular a través de qué alertas puede aceptar su aplicación cuando se lance.

me gustaría utilizar esto en el delegado de la aplicación, didFinishLaunchingWithOptions método

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

creo que de esta manera: ¿qué sería usted, como usuario, que si todos los demás aplicación establece en estos? (Claro, lo quieres para tu aplicación. Pero no todas las aplicaciones son buenas como la tuya). ¿O si cada otra aplicación te avisara cada vez que se lanzara?

No es posible, y es por eso.

Como dijo Nik, simplemente ponga todo lo que espera que el usuario habilite. El sistema le dará al usuario la oportunidad de permitir esto.

+0

gracias David, como he mencionado, hasta ahora he encontrado que no es posible. Lo que me interesa es un medio para detectar en mi aplicación cuáles son las configuraciones en el centro de notificaciones para que pueda mostrar una advertencia al usuario si no es correcta. Entonces el usuario puede ir al centro de notif y corregir los cambios. La advertencia desaparecería si se configura correctamente. –

+1

"lo que es correcto" para las notificaciones es lo que el usuario quiere, no lo que quiere que tengan. Si intenta obligar al usuario a recibir un tipo particular de notificación para su aplicación, estoy seguro de que Apple lo rechazará instantáneamente. – BigSprocket

1

en realidad se puede hacer con el siguiente método -

tipos UIRemoteNotificationType = [UIApplicationsharedApplication].enabledRemoteNotificationTypes;

mientras que los tipos es

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

acuerdo con: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html Así que si usted quiere saber si el usuario ha aprobado su aplicación para notificaciones, todo lo que tiene que hacer es comprobar si types >= 4 sea consciente: esto no le dirá si el usuario ha habilitado o deshabilitado el centro de notificaciones para su aplicación, solo le dirá el TIPO de la notificación que el usuario aprobó

+0

No puedo hacer que esto funcione. ¿Has probado con el último iOS y el hardware actual? –

+0

Sí, y funcionó ... ¿qué número obtiene para los tipos? –

+0

Parece que '- (void) registerForRemoteNotificationTypes: (UIRemoteNotificationType) types' debe llamarse para que' enabledRemoteNotificationTypes' responda algo que no sea '0'. Esto es solo para push y no se puede usar para notificaciones locales. – Jonny

Cuestiones relacionadas