iOS本地通知 – 在后台回拨
上下文:我的iOS应用程序使用本地通知,我安排本地通知,然后通过didRecieveLocalNotifications回拨通知。
这个工作正常,当应用程序在前台但是当应用程序在后台我得到的iOS通知, 但没有回电 。
我的问题:当应用程序处于后台时,如何从iOS获得callback。
这是回拨代码 –
- (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框架。
接着。
如果你的应用程序是最前面的 ,用户不会收到警报。 相反, 你得到的application:didReceiveLocalNotification:
如果您的应用程序不是最前面的 ,则用户会收到警报。 因此,你没有得到application:didReceiveLocalNotification:
因为通知被解雇。 但是,如果用户收到通知并通过点击通知警报召唤您的应用程序 ,您就可以得到它。 如果用户这样做,你会得到application:didReceiveLocalNotification:
即使在后台。
如果你的应用程序在后台被终止,你将得到application:didFinishLaunchingWithOptions:
你可以通过options
来了解你是否因为通知而被启动)。
如果您的应用程序在后台运行或者没有运行,并且用户没有点击通知并召唤您的应用程序,您将什么都得不到,也无法知道通知被触发。 这是因为通知不是为了您的利益,而是向用户发送消息的一种方式。 (听起来,从你的问题来看,好像你可能会滥用本地通知作为向自己发送消息的方式,这不是他们的目的)。