iOS本地通知 - 在后台进行回调

时间:2016-12-09 16:27:56

标签: ios notifications uilocalnotification

上下文: 我的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];

}

1 个答案:

答案 0 :(得分:9)

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

现在。

如果您的应用最前面,则用户不会收到提醒。相反,获得application:didReceiveLocalNotification:

如果您的应用不在最前面,则用户会收到提醒。因此,您获取application:didReceiveLocalNotification:因为通知被触发了。但是,如果用户收到通知并通过点击通知提醒召唤您的应用,那么就可以获得它。如果用户这样做,即使在后台也会获得application:didReceiveLocalNotification:

但是,如果您的应用在后台终止,您将获得application:didFinishLaunchingWithOptions:(并且您可以查看options以了解您因为通知而被启动了。)< / p>

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