我正在尝试合并在一定时间间隔后触发的本地通知,但是,在使用模拟器进行测试时,我似乎无法在任何时候显示通知。
我只想在创建后10秒显示本地通知,但是,在模拟器中运行应用程序时,无论应用程序是在前台还是后台,都无法显示。
我错过了什么吗?这可能与时区有关吗?
//通知设置
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
localNotification.alertBody = @"Testing";
localNotification.alertAction = @"Show me the item";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
//这是我的app delegate中的didReceiveLocalNotification
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Reminder" message:notification.alertBody delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
答案 0 :(得分:7)
1)您是否已注册使用通知?您可以通过错过这个简单的步骤在此处看到我的帖子。它在Swift中,但你得到了要点:UILocalNotification not doing anything
2)当你进入App 时,我认为Notifications无效,因为它违背了Notifications的目的。当您不在应用程序(即后台模式或已终止)时,通知应该会提醒您。因此,当您进行测试时,请确保您不在应用程序中
3)一般来说,根据我的经验,测试通知最好在真实设备上完成而不是模拟器。
答案 1 :(得分:0)
iOS模拟器无法自动获取真实位置。
您可以设置虚假位置以保持您的应用继续运行。尝试使用它来检测它是否是模拟器,然后设置它。
#if (TARGET_IPHONE_SIMULATOR)