我可以让我的iBeacon
应用在应用程序以后台模式运行时向用户推送本地通知,但出于某种原因,此通知会每隔一秒钟重复一次,
UILocalNotification *notice = [[UILocalNotification alloc] init];
for (int i=0; i<=1; i++)
{
notice.alertBody = @"We just found some great deals in this location!";
notice.alertAction = @"Open";
[[UIApplication sharedApplication] scheduleLocalNotification:notice];
notice.fireDate = [[NSDate date] dateByAddingTimeInterval:0.2];
}
我只希望此通知在用户进入该区域时仅显示一次。
答案 0 :(得分:2)
iOS范围每秒,所以听起来你的代码是didRangeBeacons
方法。您应该将UILocalNotification
代码移至didEnterRegion
方法。
答案 1 :(得分:0)
使用presentLocalNotificationNow
。当用户进入该区域时,它会使通知仅显示一次。
[[UIApplication sharedApplication] presentLocalNotificationNow:notice];
答案 2 :(得分:0)
根据您的代码,您似乎正在安排两个本地通知,因为您的for
循环应该运行两次。这意味着您没有看到相同通知的重复,但几乎同时触发了两个不同的通知。我建议你再次完成你的逻辑。
默认情况下repeatInterval
对象的UILocalNotification
属性设置为0,即非重复。因此,不是设置repeatInterval
的情况,因为您希望它不重复。
答案 3 :(得分:0)
试试这个。 。
UILocalNotification *notice = [[UILocalNotification alloc] init];
notice.alertBody = @"We just found some great deals in this location!";
notice.alertAction = @"Open";
notice.fireDate = [[NSDate date] dateByAddingTimeInterval:0.2];
[[UIApplication sharedApplication] scheduleLocalNotification:notice];