Próbuję odczytywać otrzymywanie powiadomień w mojej aplikacji, ale nie działa to prawidłowo.Obsługa powiadomień iOS po uruchomieniu aplikacji z niedziałającego stanu
Kiedy używam didReceiveLocalNotification:(UILocalNotification *)notification
. Mogę otrzymywać i używać powiadomień, które są używane do wejścia do aplikacji, bez żadnych problemów.
Jednak ta funkcja jest uruchamiana tylko wtedy, gdy aplikacja jest już z uruchomioną (aktywna, nieaktywna, tła i prawdopodobnie zawieszona, ale ja jeszcze tego nie próbowałem).
Teraz jest ta funkcja didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
, gdzie można użyć [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]
, która zwróci UILocalNotification.
Jednak po uruchomieniu aplikacji z nie uruchomionych stan ten zdarzenie nie jest uruchamiane. LocalNotification następnie otwiera aplikację, ale nie mogę jej użyć w żaden sposób.
Moje pytanie brzmi: Jak mogę sprawić, aby działało, więc mogę odbierać i przetwarzać powiadomienia podczas uruchamiania aplikacji, z powiadomienia, gdy aplikacja nie jest uruchomiona? Czy jest coś, co robię tutaj źle?
Oto przykładowy fragment kodu z mojej aplikacji:
pierwsze, funkcja didFinishLaunchingWithOptions
, która niestety nie działa. Funkcja [sharedLocalNotificationsInstance processNotification:notification]
nie jest uruchomiona ...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
LocalNotificationsController *sharedLocalNotificationsInstance = [LocalNotificationsController sharedLocalNotificationsInstance];
[sharedLocalNotificationsInstance checkNotifications];
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (notification != nil) {
// Process the received notification
[sharedLocalNotificationsInstance processNotification:notification];
application.applicationIconBadgeNumber = 0;
}
return YES;
}
I drugi fragment kodu: Funkcja didReceiveLocalNotification, który działa perfekcyjnie: I odbierać powiadomienia, a [sharedLocalNotificationsInstance processNotification: Zawiadomienie] działa idealnie.
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
// Used when the application launches from a notification
LocalNotificationsController *sharedLocalNotificationsInstance = [LocalNotificationsController sharedLocalNotificationsInstance];
// Process the received notification
[sharedLocalNotificationsInstance processNotification:notification];
}
Cześć laarsk. Mam ten sam dokładny problem. Mogę przechwytywać powiadomienia, gdy aplikacja znajduje się na polach lub na całym świecie, ale śmieszne rzeczy dzieją się, gdy aplikacja jest zamknięta. Klikam na powiadomienie, aplikacja otwiera się, pozostaje na ekranie przez 1 sekundę, a ekran staje się czarny. widzę aplikację w tle, ale nie widzę powiadomienia o otrzymaniu powiadomienia. Naprawdę nie jestem pewien, czy UILocalNotification * notification = (UILocalNotification *) [launchOptions objectForKey: UIApplicationLaunchOptionsLocalNotificationKey]; działa lub nie. Czy znalazłeś solidne rozwiązanie? – Add080bbA