2017-02-21 4 views
1

Ich möchte die Bannerbenachrichtigung anzeigen, wenn der Benutzer die Anwendung beendet. Und wenn ich auf dieses Banner tippe, möchte ich, dass sich meine Anwendung öffnet.Lokale Bannerbenachrichtigung zum Beenden der App

func showBanner() { 

    UIApplication.shared.cancelAllLocalNotifications() 

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

    UIApplication.shared.presentLocalNotificationNow(notif) 
} 

Wenn ich diesen Code setzen in applicationDidEnterBackground es funktioniert gut; Aber wenn ich es in applicationWillTerminate stecke, tut es das nicht.

Problemumgehung?

EDIT:

Added fireDate wie folgt vor:

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

immer noch nicht funktioniert. Irgendeine Idee?

+0

wo Sie diese 'showBanner' genannt haben –

+0

@ Anbu.Karthik Es funktioniert, wenn ich es mit' applicationDidEnterBackground' setze Aber es funktioniert nicht, wenn ich es in 'applicationWillTerminate' wie in Queston erwähnt einfügen. –

+0

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

Antwort

1

Der gleiche Code funktioniert, wenn ich in gesetzt App mit kommuniziert CoreBluetooth in info.plist für Requires Background Modes.

Haben Sie den Hauch von This Answer

Hoffnung Let bietet Apple meine App nicht ablehnen.

0

keine Garantie, dass applicationWillTerminate jemals aufgerufen werden kann, das ist der Reasone Ihren Code nicht funktioniert. also, wenn Ihre Notwendigkeit, etwas, bevor App zu existieren rufen dann applicationDidEnterBackground

mehr check this iOS - How to guarantee that applicationWillTerminate will be executed

+0

Aber ich möchte die Benachrichtigung nur angezeigt werden, wenn die Anwendung beendet wird. Nicht wenn es im Hintergrund ist. Irgendeine Problemumgehung? –

+0

warum unten abgestimmt bitte kommentieren –

+0

Wie würde ich wissen? Ich habe noch nicht einmal so viele Wiederholungen. : D Btw, Sie können die Antwort als Kommentar zu Frage, da es keine Antwort ist. –

Verwandte Themen