2015-08-05 8 views
12

Ich habe eine App erstellt, in der Hintergrund-Abrufcode beim Empfangen von Push-Benachrichtigungen geschrieben wird. Ich habe den Hintergrund-Modus in .plist aktiviert, inhalt verfügbar Taste wird auf 1 in Push-Benachrichtigung Nutzlast gesetzt, für Push-Benachrichtigung registriert und mit DelegiertenRemote-Benachrichtigungs-Callback wird während des Telefonats nicht angerufen

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler 

Nun, wenn mein app im Hintergrund ist, dass ich einen Anruf erhalten. Während des Anrufs erhalte ich eine Push-Benachrichtigung für meine App.
Beim Empfang der Push-Benachrichtigung während eines Anrufs wird der Push-Benachrichtigungsdelegat nicht aufgerufen.

+0

haben Sie für Push-Benachrichtigung –

+0

Register @Bhavin ich für Push-Benachrichtigung registriert haben. –

+0

Ja, der Delegierte wird nicht angerufen –

Antwort

-1

Ich denke, während des Telefonats wird zellulare Chip für die Sprachübertragung verwendet. Datenübertragung ist zusätzliche Arbeit für den Chip, die die Batterielebensdauer dramatisch beeinflussen könnte. Dies ist eher eine bewusste Entscheidung von Apple, es während Telefongesprächen zu einer stillen Benachrichtigung zu machen.

3

Um die Push-Benachrichtigung/Remote-Benachrichtigung während des Telefonanrufs hier unten zu behandeln, lautet die Methode: Wenn der Anruf empfangen wird, wird die App inaktiv und wenn der Anruf unterbrochen wird, wird die App aktiv und die Methode " applicationDidBecomeActive "im AppDelegate aufgerufen wird. Sie können die Remote Notification daher in der Methode didReceiveRemoteNotification im applicationDidBecomeActive zurückrufen.

Auch Sie können die Push-Benachrichtigung behandeln, wenn die App beendet wird. wie zum Beispiel auf dem spezifischen viewController verschieben, didFinishLaunchingWithOptions enthält das Wörterbuch, das die Nutzlast der Benachrichtigung enthält, wenn die App beendet wird und Push-Benachrichtigungen empfangen werden. Dies kann als getan werden. `.

if (launchOptions != nil) 
{ 
    // opened from a push notification when the app is closed 

NSDictionary* userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 

if (userInfo != nil) 
    { 

    } 
} 
else 
{ 
    // opened app without a push notification. 
}` 

Hoffnung dies funktionieren wird :)