我在我的应用程序中使用本地通知,我唯一关心的是用户单击的确切通知。
方法
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
收到通知时触发,但我需要在用户单击通知时处理通知,因此这对我来说毫无用处。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
仅在应用程序未运行时触发,也不是我需要的
我在网上搜索,但发现仅处理应用程序处于事件状态或未运行的情况。当应用程序在后台时我该如何处理?
换句话说,我需要的是识别用户在应用程序在后台运行时单击的确切通知
最佳答案
创建 UILocalNotification 时,您可以设置 userInfo
来设置任何关联的数据/唯一标识符。
例如。
UILocalNotification *someNotification = [[UILocalNotification alloc] init];
[someNotification setUserInfo:@{ kSomeUniqueIdentifierKey : @"identifier" }];
然后,
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if ([notification.userInfo[kSomeUniqueIdentifierKey] isEqualToString:@"identifier"]) {
// We know what notification was responded to based on userInfo
}
}
上述方法会在应用程序运行时收到通知后立即触发,或者当用户点击应用程序在后台时触发的通知时立即触发。
如果您想在应用程序运行时忽略这些通知,您可以随时检查应用程序的状态,以确定它是否在运行时或在后台响应通知。
关于ios - 如何处理用户点击的本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220857/