2015-08-05 21 views
12

Ho creato un'app in cui il codice di recupero in background viene scritto alla ricezione di notifica push. Ho attivato la modalità background in plist, contenuto-chiave a disposizione è impostato su 1 nel payload notifica push, registrato per notifica push e utilizzando delegatoChiamata di notifica remota non chiamata durante la telefonata

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

Ora, quando la mia applicazione è in background, ricevo una chiamata. Durante la chiamata, ricevo una notifica push per la mia app.
Alla ricezione della notifica push durante una chiamata, il delegato di notifica push non viene chiamato.

+0

Ti sei registrato per la notifica push –

+0

@Bhavin Mi sono registrato per la notifica push. –

+0

Sì, il delegato non viene chiamato –

risposta

-1

Immagino che durante la telefonata venga utilizzato il chip cellulare per la trasmissione vocale. La trasmissione dei dati è un lavoro extra per il chip che potrebbe influire notevolmente sulla durata della batteria. Questa è una decisione più consapevole da parte di Apple per rendere più silenziosa la notifica durante le telefonate.

3

Quindi per gestire la notifica push/Notifica remota durante la telefonata qui sotto il metodo è: Quando si riceve la chiamata l'app diventa inattiva e quando la chiamata viene disconnessa l'app diventa attiva e il metodo " applicationDidBecomeActive "viene chiamato in AppDelegate. Quindi è possibile richiamare la notifica remota nel metodo didReceiveRemoteNotification in applicationDidBecomeActive.

Anche se è possibile gestire la notifica push quando l'app viene interrotta. come spostarsi sullo specifico viewController, didFinishLaunchingWithOptions contiene il dizionario che contiene il carico utile della notifica quando l'app viene interrotta e viene ricevuta una notifica push. Questo può essere fatto come `.

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. 
}` 

speranza che questo lavoro :)

Problemi correlati