/ / Lokale Benachrichtigungen verarbeiten, wenn der Benutzer auf das Symbol anstelle der Warnung drückt - iOS, Objective-C, Benachrichtigungen, lokale Benachrichtigung, lokale Benachrichtigung

Behandlung lokaler Benachrichtigungen, wenn der Benutzer das Symbol anstelle der Warnung drückt - ios, Ziel-c, Benachrichtigungen, lokale Sprachnachrichten, lokaleNachrichten

Hier ist die Situation, die ich behandeln möchte, zitiert aus der Dokumentation von Apple.

Infolge der vorgelegten Anmeldung wurde dieDer Benutzer tippt auf die Aktionsschaltfläche der Warnung oder auf das Anwendungssymbol (oder klickt darauf). Wenn Sie auf die Aktionsschaltfläche tippen (auf einem Gerät mit iOS), startet das System die Anwendung und die Anwendung ruft die Anwendung ihres Stellvertreters auf: didFinishLaunchingWithOptions: method (falls implementiert); Sie übergibt die Benachrichtigungsnutzdaten (für Remotebenachrichtigungen) oder das lokale Benachrichtigungsobjekt (für lokale Benachrichtigungen).

Wenn das Anwendungssymbol auf einem Gerät antipptUnter iOS ruft die Anwendung dieselbe Methode auf, liefert jedoch keine Informationen zur Benachrichtigung. Wenn auf einem Computer unter OS X auf das Anwendungssymbol geklickt wird, ruft die Anwendung die Methode applicationDidFinishLaunching: des Delegaten auf, mit der der Delegat die Nutzdaten für die Remotebenachrichtigung abrufen kann.

Wie gehe ich mit dieser Situation um, wenn keine Informationen zur Benachrichtigung vorliegen?

Antworten:

5 für die Antwort № 1

Wenn ich dich richtig verstehe, klingt es wie duüber eine UILocalNotification verfügen, die ausgelöst wurde, die Sie jedoch weiterhin bearbeiten müssen, wenn der Benutzer anstelle der Benachrichtigung auf das Anwendungssymbol tippt. Richtig?

Wenn dies der Fall ist, dann meines Wissens nachkann die Benachrichtigung vom App-Delegaten nicht verarbeiten, da die App nicht durch die Benachrichtigung gestartet oder aus dem Hintergrund entfernt wird, sondern durch die Interaktion des Benutzers.

Wenn Sie jedoch in der Anwendung mit der Benachrichtigung eine badgeNumber festlegen, können Sie Folgendes versuchen:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {
UILocalNotification *notification = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
} else if ([UIApplication sharedApplication].applicationIconBadgeNumber > 0) {
// Assume that user launched the app from the icon with a notification present.
}}

Möglicherweise müssen Sie auch die badgeNumber einchecken - (void)applicationDidBecomeActive:(UIApplication *)application auch.


1 für die Antwort № 2

Verbessere die Antwort auf @Aron Crittendon:

Berücksichtigen Sie auch, dass in applicationDidBecomeActive:

-(void)applicationDidBecomeActive:(UIApplication *)application
{
if ([UIApplication sharedApplication].applicationIconBadgeNumber > 0) {
//application is in background, fired notification and user tapped app icon with badge
}
}

0 für die Antwort № 3

Wie in der Dokumentation angegeben, wenn Sie auf das Symbol tippenUnter iOS (und nicht in der Benachrichtigung / im Banner der Benachrichtigung) wird dieselbe Methode aufgerufen, aber Sie erhalten keine Benachrichtigungsinformationen. Eine lokale Benachrichtigung kann nicht durch einfaches Tippen auf das App-Symbol verarbeitet werden.