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

One*_*nDc 5 notifications ios 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];

}
Run Code Online (Sandbox Code Playgroud)

mat*_*att 9

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

接着.

如果您的应用程序位于最前端,则用户不会收到警报.相反,得到application:didReceiveLocalNotification:.

如果您的应用不在最前面,则用户会收到提醒.因此,您不会application:didReceiveLocalNotification:因为通知被解雇获得.但是,你这样做,如果把它的用户收到通知并传唤您的应用程序通过点击通知警报.如果用户这样做,你application:didReceiveLocalNotification:甚至会在后台获得.

但是,如果您的应用程序在后台终止,您将获得application:didFinishLaunchingWithOptions:(并且您可以检查options以了解您是否因为通知而被启动).

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

  • 谢谢 - 答案已接受。你能指出我对我的后续行动的回答吗?大多数答案建议为此使用 UILocalNotification ,因此我的原始问题 (2认同)