上下文:我的iOS应用程序使用本地通知我安排本地通知,然后在通知触发时通过didRecieveLocalNotifications回复 .
这应用程序在 foreground 时工作正常但是当应用程序进入 background 时,我收到iOS通知 but no call back .
我的问题:当应用程序处于后台时,如何从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 回答
你在描述
application:didReceiveLocalNotification:
. 这在iOS 10中已弃用 . 您应该更新到UserNotification框架 .接着 .
如果您的应用程序位于最前端,则用户不会收到警报 . 相反,你得到
application:didReceiveLocalNotification:
.如果您的应用不在最前面,则用户会收到提醒 . 因此,您没有获得
application:didReceiveLocalNotification:
因为通知已被触发 . 但是,如果用户收到通知并通过点击通知提醒召唤您的应用,您就会得到它 . 如果用户这样做,即使在后台也会得到application:didReceiveLocalNotification:
.但是,如果您的应用程序在后台终止,您将获得
application:didFinishLaunchingWithOptions:
(并且您可以检查options
以了解您是否因为通知而被启动) .如果您的应用程序在后台运行或未运行,并且用户未点击通知并召唤您的应用程序,您将什么也得不到,并且无法知道该通知已被触发 . 这是因为通知不是为了您的利益,而是一种向用户发送消息的方式 . (听起来,从您的问题来看,好像您可能滥用本地通知作为向自己发送消息的方式 . 这不是它们的用途 . )