我正在使用 Estimote 信标开发应用程序,因此我有三个信标,一个用于进入,第二个用于退出,第三个用于消息。我想根据接近度用户发出推送通知,所以我收到推送通知,但问题是它提供多个相同的通知。所以我使用 NSUserDefault 来停止多个推送通知,但它也不起作用所以我怎样才能停止这个问题。我也检查本地通知,但它也给了我多个本地通知。
代码:-
-(void)beaconManager:(ESTBeaconManager *)manager
didRangeBeacons:(NSArray *)beacons
inRegion:(ESTBeaconRegion *)region
{
if ([beacons count] == 0)
return;
ESTBeacon* beacon = [beacons firstObject];
int dist = [beacon.distance intValue];
if([region.identifier isEqualToString:BeaconIdentifier2]){
switch (beacon.proximity) {
case CLProximityUnknown:{
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Far"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Near"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Immediate"];
[[NSUserDefaults standardUserDefaults] synchronize];
if([[[NSUserDefaults standardUserDefaults] valueForKey:@"Unknown"] isEqualToString:@"FALSE"])
{
[[NSUserDefaults standardUserDefaults] setObject:@"TRUE" forKey:@"Unknown"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"Call Unknown");
[self callPush];
}
}
break;
case CLProximityFar:{
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Unknown"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Near"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Immediate"];
[[NSUserDefaults standardUserDefaults] synchronize];
if([[[NSUserDefaults standardUserDefaults] valueForKey:@"Far"] isEqualToString:@"FALSE"])
{
[[NSUserDefaults standardUserDefaults] setObject:@"TRUE" forKey:@"Far"];
[[NSUserDefaults standardUserDefaults] synchronize];
//Call webservice
[self callPush];
}
}
break;
case CLProximityNear:{
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Unknown"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Far"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Immediate"];
[[NSUserDefaults standardUserDefaults] synchronize];
if([[[NSUserDefaults standardUserDefaults] valueForKey:@"Near"] isEqualToString: @"FALSE"])
{
[[NSUserDefaults standardUserDefaults] setObject:@"TRUE" forKey:@"Near"];
[[NSUserDefaults standardUserDefaults] synchronize];
//Call webservice
[self callPush];
}
}
break;
case CLProximityImmediate:{
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Unknown"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Far"];
[[NSUserDefaults standardUserDefaults] setObject:@"FALSE" forKey:@"Near"];
[[NSUserDefaults standardUserDefaults] synchronize];
if([[[NSUserDefaults standardUserDefaults] valueForKey:@"Immediate"] isEqualToString:@"FALSE"])
{
[[NSUserDefaults standardUserDefaults] setObject:@"TRUE" forKey:@"Immediate"];
[[NSUserDefaults standardUserDefaults] synchronize];
//Call webservice
[self callPush];
}
}
break;
}
}
}
提前致谢。