0

我正在使用 estimote 信标及其 SDK 进行信标监控和测距。测距在 iOS 8.4 和 iOS 9.0.2 上运行良好。虽然监控仅适用于 iOS 8.4,但在进入和离开区域时,我在 iOS 9.0.2 上没有收到任何通知。

这是我在应用程序委托中使用的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    ...


    self.beaconRegion = [[CLBeaconRegion alloc]
                         initWithProximityUUID:[[NSUUID alloc]
                                                initWithUUIDString:@"myUUID"]
                         major:12345 minor:12345 identifier:@"mint"];
    self.beaconRegion1 = [[CLBeaconRegion alloc]
                         initWithProximityUUID:[[NSUUID alloc]
                                                initWithUUIDString:@"myUUID"]
                         major:12334 minor:12345 identifier:@"ice"];
    self.beaconRegion2 = [[CLBeaconRegion alloc]
                         initWithProximityUUID:[[NSUUID alloc]
                                                initWithUUIDString:@"myUUID"]
                         major:1234 minor:1234 identifier:@"blueberry"];

    self.beaconManager = [ESTBeaconManager new];
    self.beaconManager.delegate = self;
    self.locManager.allowsBackgroundLocationUpdates = YES;
    self.locManager.pausesLocationUpdatesAutomatically = NO;
    [self.locManager requestAlwaysAuthorization];

    [self.locManager startMonitoringForRegion:self.beaconRegion];


    self.beaconRegion.notifyOnEntry = YES;
    self.beaconRegion1.notifyOnEntry = YES;
    self.beaconRegion2.notifyOnEntry = YES;

    self.beaconRegion.notifyOnExit = YES;
    self.beaconRegion1.notifyOnExit = YES;
    self.beaconRegion2.notifyOnExit = YES;
    [self.beaconManager requestAlwaysAuthorization];

    [self.beaconManager startMonitoringForRegion:self.beaconRegion];
    [self.beaconManager startMonitoringForRegion:self.beaconRegion1];
    [self.beaconManager startMonitoringForRegion:self.beaconRegion2];

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    if ([UIApplication respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
                                                        UIUserNotificationTypeBadge |
                                                        UIUserNotificationTypeSound);
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
                                                                                 categories:nil];
        [application registerUserNotificationSettings:settings];
        [application registerForRemoteNotifications];
    }
    return YES;
}

- (void)beaconManager:(CLLocationManager *)manager didEnterRegion:(CLBeaconRegion *)region
{
    // On enter 
    UILocalNotification *notification = [UILocalNotification new];
    if ([region.identifier isEqualToString:self.beaconRegion.identifier]) {
        NSLog(@"MintEnter");
        notification.alertBody = @"You Have Entered Region 1";
        notification.soundName = UILocalNotificationDefaultSoundName;
        notification.category = @"MintEnter";
        [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
    }
    else if ([region.identifier isEqualToString:self.beaconRegion1.identifier]){
        NSLog(@"IceEnter");
        notification.alertBody =   @"You Have Entered Region 2";
        notification.soundName = UILocalNotificationDefaultSoundName;
        notification.category = @"IceEnter";
        [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
    }
    else if ( [region.identifier isEqualToString:self.beaconRegion2.identifier]){
        NSLog(@"BlueBerryEnter");
        notification.alertBody = @"You Have Entered Region 3";
        notification.soundName = UILocalNotificationDefaultSoundName;
        notification.category = @"BlueBerryEnter";
        [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
    }



}

请在这方面帮助我。

4

1 回答 1

0

当我将它更新到 iOS 9.1 通知开始出现在通知区域时,我发现解决方案问题出在 iOS 版本 9.0.2 上。

于 2015-11-09T05:55:31.793 回答