上下文: 我的iOS应用程序使用本地通知 我安排了本地通知,然后当通知触发时,我通过 didRecieveLocalNotifications 收到回电。
当应用程序位于前景时,此功能正常但是当应用程序进入后台时,我会收到iOS通知但没有回复 。
我的问题: 当应用程序处于后台时,如何从iOS获得回调。
这是回叫代码 -
- (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];
}
答案 0 :(得分:9)
您正在描述application:didReceiveLocalNotification:
。这在iOS 10中已弃用。您应该更新到UserNotification框架。
现在。
如果您的应用最前面,则用户不会收到提醒。相反,你获得application:didReceiveLocalNotification:
。
如果您的应用不在最前面,则用户会收到提醒。因此,您不获取application:didReceiveLocalNotification:
因为通知被触发了。但是,如果用户收到通知并通过点击通知提醒召唤您的应用,那么做就可以获得它。如果用户这样做,即使在后台也会获得application:didReceiveLocalNotification:
。
但是,如果您的应用在后台终止,您将获得application:didFinishLaunchingWithOptions:
(并且您可以查看options
以了解您因为通知而被启动了。)< / p>
如果您的应用程序在后台运行或未运行,并且用户不点击通知并召唤您的应用程序,您将什么也得不到,并且无法知道该通知被解雇。这是因为通知不是 的好处,而是一种向用户发送消息的方式。 (听起来,从您的问题来看,好像您可能滥用本地通知作为向自己发送消息的方式。这不是他们的目的。)