2012-04-05 29 views
6

Actualmente estoy trabajando con el "Regiones" Código de ejemplo: https://developer.apple.com/library/ios/#samplecode/Regions/Introduction/Intro.h tml # // apple_ref/doc/uid/DTS40010726-Intro-DontLinkElementID_2Región de notificación local basada

me gustaría ir un paso más allá y generar, o disparar, una notificación cuando el usuario sale de la región (puede ser para ambos ingresar & salir, no me importa, lo que sea más fácil para una implementación inicial).

He estado consultando la referencia de CLLocation Class, la guía de programación de reconocimiento de ubicación y la guía de programación local y de notificación push. Y estoy sufriendo de sobrecarga de información.

Muchas gracias :)

EDIT: Creo que puede tener una idea de lo que resuelve el problema: en el archivo de implementación RegionsViewController está esto:

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region  { 
    NSString *event = [NSString stringWithFormat:@"didExitRegion %@ at %@", region.identifier, [NSDate date]]; 

    [self updateWithEvent:event]; 
} 

ya que quiero implementar un local de notificación cuando el usuario sale del límite de la región designada ive introducir esto:

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region { 
    NSString *event = [NSString stringWithFormat:@"didExitRegion %@ at %@", region.identifier, [NSDate date]]; 
    [self updateWithEvent:event]; 
    //implement local notification: 
    UIApplication *app    = [UIApplication sharedApplication]; 
    UILocalNotification *notification = [[UILocalNotification alloc] init]; 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

    if (notification == nil) 
     return; 

    notification.alertBody = [NSString stringWithFormat:@"Did You Lock Your House?"]; 
    notification.alertAction = @"Lock House"; 
    notification.soundName = UILocalNotificationDefaultSoundName; 
    notification.applicationIconBadgeNumber = 1; 
    [app presentLocalNotificationNow:notification]; 

    [notification release]; 
} 

Podría alguien me asesoramiento para saber si esta es correcto, o si hay alguna recomendación? (disculpas por el formato pobre)

Respuesta

1

tiene razón, no hay mejor manera que disparar una notificación local desde locationManager: didExitRegion: Además, esto funcionará incluso si su aplicación se ejecuta en segundo plano o cerrada.

Cuestiones relacionadas