Je cherche un moyen de récupérer la UIApplicationLaunchOptionsLocalNotificationKey sur iOS qui n'implique pas l'utilisation du délégué d'application, c'est-à-dire que je ne veux pas avoir à implémenter ce qui suit:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UILocalNotification *localNotification = [launchOptions objectForKey: UIApplicationLaunchOptionsLocalNotificationKey]; if (localNotification != nil) { // Process notification } }
J'essaie de créer une bibliothèque d'aide qui a besoin d'informations sur la notification de démarrage. Y a-t-il une manière de faire ça? Puis-je récupérer les options de lancement via une autre méthode à un stade ultérieur du process de candidature?
Vous pouvez vous append en tant qu'observateur de la notification UIApplicationDidFinishLaunchingNotification
qui sera posée par l'application et contient les informations que vous searchz.
Comme le suggère @Stavash, il existe des limites. Pour le premier lancement, vous ne pourrez pas sélectionner cette notification car l'instance de votre bibliothèque ne sera pas créée (votre class devra être dans la racine XIB). Mais, cette notification sera également envoyée lorsque l'application est rouverte pour les notifications locales / distantes.
Utilisez une catégorie AppDelegate et dans la méthode + load de votre catégorie ajoutez un observateur pour UIApplicationDidFinishLaunchingNotification. Pour la class d'observateur, vous ne pouvez pas utiliser "self", mais vous devrez utiliser un object singleton. Voici les étapes exactes pour y arriver.
L'autre façon de le faire serait de Swizzle la méthode init de AppDelegate avec une méthode swizzle_init. De cette façon, vous pouvez éviter l'object Singleton et définir votre méthode d'observateur "appDidLaunch" dans la catégorie de votre AppDelegate. Dans ce cas, vous pouvez définir «self» comme observateur de votre notification.