iOS本地通知 – 在后台回拨

上下文:我的iOS应用程序使用本地通知,我安排本地通知,然后通过didRecieveLocalNotifications回拨通知。

这个工作正常,当应用程序在前台但是当应用程序在后台我得到的iOS通知, 但没有回电

我的问题:当应用程序处于后台时,如何从iOS获得callback。

这是回拨代码 –

- (void)application:(UIApplication *)application didReceiveLocalNotification: (UILocalNotification *)notification { //call your method that you want to do something in your app NSLog (@"Received Notification"); [UIApplication sharedApplication].applicationIconBadgeNumber = 1; [myRootController HandleLocalNotifications:notification]; } 

您正在描述application:didReceiveLocalNotification: 这在iOS 10中已被弃用。您应该更新到UserNotification框架。

接着。

如果你的应用程序是最前面的 ,用户不会收到警报。 相反, 得到的application:didReceiveLocalNotification:

如果您的应用程序不是最前面的 ,则用户会收到警报。 因此,你没有得到application:didReceiveLocalNotification:因为通知被解雇。 但是,如果用户收到通知通过点击通知警报召唤您的应用程序 ,您可以得到它。 如果用户这样做,你会得到application:didReceiveLocalNotification:即使在后台。

如果你的应用程序在后台被终止,你将得到application:didFinishLaunchingWithOptions:你可以通过options来了解你是否因为通知而被启动)。

如果您的应用程序在后台运行或者没有运行,并且用户没有点击通知并召唤您的应用程序,您将什么都得不到,也无法知道通知被触发。 这是因为通知不是为了您的利益,而是向用户发送消息的一种方式。 (听起来,从你的问题来看,好像你可能会滥用本地通知作为向自己发送消息的方式,这不是他们的目的)。