2012-04-05 15 views
6

Im obecnie pracuje z "Regiony" Kod próbki: https://developer.apple.com/library/ios/#samplecode/Regions/Introduction/Intro.h tml # // apple_ref/doc/uid/DTS40010726-Intro-DontLinkElementID_2Region oparty lokalny powiadomienie

Chciałbym zabrać go o krok dalej i wygenerować lub wystrzelić powiadomienie, gdy użytkownik opuszcza region (może być dla obu wejść &, nie mam nic przeciwko temu, co jest najłatwiejsze do początkowej implementacji).

Zajmuję się odwołaniami do klasy CLLocation, przewodnikiem po programowaniu w zakresie rozpoznawania lokalizacji oraz przewodnikiem programowania lokalnego i powiadomień push. I im cierpi z powodu przeciążenia informacji.

Dziękujemy :)

EDIT: Myślę, że może mieć pomysł, który rozwiązuje ten problem: w pliku implementacji RegionsViewController tam jest taka:

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

    [self updateWithEvent:event]; 
} 

ponieważ chcę wdrożyć lokalny powiadomienie, gdy użytkownik opuszcza wyznaczoną granicę regionu Wprowadziłem to:

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

Czy ktoś może doradzić mi, czy to jest poprawne, lub czy są jakieś zalecenia? (przepraszam za słabą formatowania)

Odpowiedz

1

masz rację, nie ma lepszego sposobu niż wypalanie lokalnego zawiadomienie od locationManager: didExitRegion: Co więcej, to będzie działać nawet wtedy, gdy aplikacja działa w tle, czy zamknięte.