模拟器不显示 UILocalNotification

Simulator not displaying UILocalNotification

我正在尝试合并在特定时间间隔后触发的本地通知,但是,在使用模拟器进行测试时,我似乎无法在任何时候显示通知。

我只是想在创建后 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];
}

iOS模拟器无法自动获取真实位置。

您可以设置一个虚假的位置来让您的应用继续运行。试试用这个检测是不是模拟器,然后设置。

#if (TARGET_IPHONE_SIMULATOR)

1) 您是否已注册使用通知? 您可以在此处看到我的 post 只是错过了这个简单的步骤所面临的问题。它在 Swift 中,但您明白了要点:

2) 我认为当您在应用程序内部时通知不起作用,因为那样它会破坏通知的目的。当您不在应用程序中时,通知应该会提醒您,即后台模式或已终止。所以当你测试的时候,确保你不在应用程序中

3) 一般来说,根据我的经验,测试通知在真实设备上比模拟器更好。