iOS 本地通知 - 后台回调

iOS Local Notification - Callback when in Background

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

}

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

那么现在。

如果您的应用程序 frontmost,则用户不会收到任何提醒。相反, 得到 application:didReceiveLocalNotification:.

如果您的应用不是最前面的,用户会收到提醒。因此,您 not get application:didReceiveLocalNotification: 因为通知已触发。但是如果 用户 收到通知 并通过点击通知警报召唤您的应用程序 ,您 得到它.如果用户这样做,您甚至会在后台获得 application:didReceiveLocalNotification:

但是,如果您的应用程序在后台终止,您将收到 application:didFinishLaunchingWithOptions:(并且您可以查看 options 以了解您是因为通知而启动的)。

如果您的应用是否在后台运行 运行,并且用户没有点击通知并召唤您的应用,您将一无所获,并且将无法知道通知已触发。这是因为通知不是为了的利益,而是一种向用户发送消息的方式。 (从你的问题来看,你似乎在滥用本地通知作为向你自己发送消息的一种方式。这不是它们的目的。)