2011-12-31 17 views
6

Tengo una pregunta para hacer sobre las notificaciones. Después de algunas horas para aprender cómo implementar notificaciones push en iPhone, ¡ahora llega!Cómo administrar la notificación cuando los usuarios hacen clic en la insignia

¿Cómo administro a los usuarios que hacen clic en la insignia o hacen clic en ver en alerta? ¿Qué sucede cuando los usuarios hacen clic allí?

Intenté enviarme una notificación y el número en el icono de la aplicación en incrementos de trampolín. ¿De qué forma al hacer clic allí es posible mostrar una uiview para administrar la notificación recibida y mostrar el mensaje leído y sin leer?

¿Hay un tutorial para ello? Quiero guardar todos los mensajes dentro de una vista de uitable.

Respuesta

34

desea leer Handling Local and Remote Notifications

Básicamente en su aplicación delegue, que desea implementar:

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 

y

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; 

y procesar los launchOptions/userInfo de los datos de notificación.

Cómo normalmente procesar los datos es:

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    NSDictionary* userInfo = 
     [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if (userInfo) { 
     [self processRemoteNotification:userInfo]; 
    } 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
    return YES; 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
    [self processRemoteNotification:userInfo]; 
} 

El formato para userInfo se documenta la sección The Notification Payload.

p. Ej. la tecla "aps" le dará otro NSDictionary, luego, al buscar la tecla "alerta", obtendrá el mensaje de alerta que se mostró. Además, cualquier dato personalizado que envíe en la carga útil JSON estará allí también.

NSDictionary *apsInfo = [userInfo objectForKey:@"aps"]; 

NSString *alertMsg = @""; 
NSString *badge = @""; 
NSString *sound = @""; 
NSString *custom = @""; 

if([apsInfo objectForKey:@"alert"] != NULL) 
{ 
    alertMsg = [apsInfo objectForKey:@"alert"]; 
} 


if([apsInfo objectForKey:@"badge"] != NULL) 
{ 
    badge = [apsInfo objectForKey:@"badge"]; 
} 


if([apsInfo objectForKey:@"sound"] != NULL) 
{ 
    sound = [apsInfo objectForKey:@"sound"]; 
} 

if([userInfo objectForKey:@"Custom"] != NULL) 
{ 
    custom = [userInfo objectForKey:@"Custom"]; 
} 
+1

Acabo de seguir la información en el sitio de apple y no tuve ningún problema. ¿Con qué tienes un problema exactamente? –

+0

entendido !!!! GRACIAS MUY MUCHO :) – JackTurky

+0

Respuesta actualizada con la información que deseabas. –

Cuestiones relacionadas