如何在iOS中关闭应用时获取本地通知

时间:2016-12-28 05:54:23

标签: ios objective-c uilocalnotification

即使应用程序关闭,我也希望在下午2:00和下午6:00收到通知。

如何检查我想要触发本地通知的特定时间以及我应该在iOS的代码中将该代码写在哪里?

请在Objective-C建议我一个代码。

我应该使用这种方法吗?

- (void)application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler

如果是,那么我应该在这种方法中写什么来获取特定时间的通知。

3 个答案:

答案 0 :(得分:1)

当应用暂停或在后台调用委托方法didReceiveLocalNotification时,会发出本地通知:

-(void) application:(UIApplication *)application 
        didReceiveLocalNotification:(UILocalNotification *)notification  

您需要在appdelegate

中实施上述方法

请提醒didReceiveRemoteNotification方法仅在应用通过服务器获取通知时调用,称为推送通知或远程通知

答案 1 :(得分:1)

您不应使用didReceiveRemoteNotification方法获取本地通知。

您应该使用didReceiveRemoteNotification方法获取推送通知。

我们必须知道以下事情

当应用未运行或应用处于关闭状态时

  

如果应用程序不在最前面且可见,系统将显示

the alert

message, 

badges
  

应用程序,播放声音 - 通知中指定的任何内容。   如果通知是警报并且用户点击   操作按钮(或者,如果设备被锁定,则拖动操作   滑块),应用程序被唤醒或启动。 (如果用户点击其中一个   您使用类别属性指定的自定义操作,应用是   醒来或发射到背景中。)在其中   应用程序:didFinishLaunchingWithOptions:方法,应用程序委托   可以从启动选项中获取UILocalNotification对象   使用UIApplicationLaunchOptionsLocalNotificationKey的字典   键。代表可以检查通知的属性,并且   如果通知在其userInfo字典中包含自定义数据,   它可以访问该数据并相应地处理它。另一方面,   如果本地通知仅标记应用图标,并且用户位于   响应启动应用   应用程序:didFinishLaunchingWithOptions:方法被称为,但没有   UILocalNotification对象包含在选项字典中。什么时候   用户选择自定义操作,即应用程序代理   应用:handleActionWithIdentifier:forLocalNotification:completionHandler:   调用方法来处理动作。

Apple API reference

当应用程序在前台状态下运行时

  

如果应用程序是最重要的,并且在系统交付时可见   通知,应用代表的   应用程序:didReceiveLocalNotification:被调用来处理   通知。使用提供的UILocalNotification中的信息   反对决定采取什么行动的对象。系统不显示任何内容   应用程序发出警报,标记应用程序图标或播放任何声音   已经最前面了。

applicationDidReciveLocalNotification

另外

iOS: If app is in background and local notification is arrived; which method will called automatically?

答案 2 :(得分:0)

application:didReceiveLocalNotification:现已弃用,因为不推荐使用类UILocalNotification

改为使用UNNotification