Je viens de télécharger xcode et d'essayer de faire un exemple de notification locale. La question est de savoir si la notification locale fonctionne dans le simulateur?
merci
Oui, les notifications locales fonctionnent avec le simulateur. Cependant, assurez-vous que vous implémentez application:didreceiveLocalNotification
dans le délégué de votre application si vous souhaitez voir la notification lorsque votre application est au premier plan:
- (void)application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"MyAlertView"
message:notification.alertBody
delegate:self cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
if (alertView) {
[alertView release];
}
}
Sinon, assurez-vous de planifier votre notification pour un certain temps dans le futur, puis fermez l'application, afin de voir l'exemple de travail Apple:
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) return;
NSDate *fireTime = [[NSDate date] addTimeInterval:10]; // adds 10 secs
localNotif.fireDate = fireTime;
localNotif.alertBody = @"Alert!";
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
Il est facile de penser que vous n'implémentez pas correctement le code de test et que vous ne gérez simplement pas l'événement pendant que l'application est en cours d'exécution.
Un autre problème que vous pourriez trouver, pour tous ceux qui trébuchent sur cette question plus ancienne: iOS 8 a introduit de nouvelles autorisations de notification; et votre application doit les demander explicitement.
Dans votre AppDeligate.m
:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//register local notifications
if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
}
//the rest of your normal code
return YES;
}
Si vous ne le faites pas, votre notification ne se déclenchera jamais et vous obtiendrez un merveilleux message comme celui-ci dans vos journaux: "Attempting to schedule a local notification <UIConcreteLocalNotification: 0x7ae51b10>{... alert details ...} with an alert but haven't received permission from the user to display alerts
"
les notifications locales fonctionnent sur le simulateur, les notifications push ne le font pas
Oui La notification locale fonctionne sur la notification locale. Cliquez ici pour Apple doc.
Pour tester les notifications locales dans le simulateur d'iphone, procédez comme suit:
Ces étapes m'ont toujours aidé à obtenir des notifications locales réussies.