2017-02-21 2 views
1

Je souhaite afficher une notification de bannière lorsque l'utilisateur quitte l'application. Et en appuyant sur cette bannière, je veux que mon application s'ouvre.Notification de bannière locale pour mettre fin à l'application

func showBanner() { 

    UIApplication.shared.cancelAllLocalNotifications() 

    let notif = UILocalNotification.init() 
    notif.alertBody = "Your Message Here..." 
    localNotif.soundName = UILocalNotificationDefaultSoundName 

    UIApplication.shared.presentLocalNotificationNow(notif) 
} 

Si je mets ce code dans applicationDidEnterBackground il fonctionne très bien; Mais, quand je le mets en applicationWillTerminate, ce n'est pas le cas.

Une solution de contournement?

EDIT:

Ajouté fireDate comme suit:

var dc = DateComponents() 
dc.second = 2 // 2 seconds from current date time 
notif.fireDate = Calendar.current.date(byAdding: dc, to: Date()) 

ne fonctionne toujours pas. Une idée?

+0

où vous appelez ceci 'showBanner' –

+0

@ Anbu.Karthik Cela fonctionne quand je le mets avec' applicationDidEnterBackground' Mais cela ne fonctionne pas quand je le mets dans 'applicationWillTerminate' comme mentionné dans queston. –

+0

voir ceci http://stackoverflow.com/questions/16806293/what-is-the-delegate-method-that-will-called-when-closing-an-iphone-app-by-press –

Répondre

1

Le même code fonctionne quand je les réglerai App communique à l'aide CoreBluetooth dans info.plist pour Requires Background Modes.

Got the indice de This Answer

Espérons, Apple ne rejette pas mon application.

0

aucune garantie que applicationWillTerminate ne sera jamais appelé, c'est la raison pour laquelle votre code ne fonctionne pas. donc si votre besoin de faire quoi que ce soit avant l'application existe alors appeler applicationDidEnterBackground

plus Cochez cette iOS - How to guarantee that applicationWillTerminate will be executed

+0

Mais, je veux que la notification n'apparaisse que lorsque l'application est terminée. Pas quand c'est en arrière-plan. Une solution de contournement? –

+0

pourquoi les votes ont-ils été commentés? –

+0

Comment le saurais-je? Je n'ai même pas beaucoup de représentants à downvote. : D Btw, vous pouvez poster la réponse comme commentaire à la question, car ce n'est pas réellement une réponse. –