我在我的应用中使用本地通知,我唯一关心的是用户点击的确切通知。
方法
-(void)applicationUIApplication *)application didReceiveLocalNotificationUILocalNotification *)notification
收到通知时触发,但我需要在用户点击通知时处理通知,所以这对我没用。
- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions
仅在应用未运行时触发,也不是我需要的
我搜索了网络,但仅在应用程序处于事件状态或未运行时才找到句柄。应用在后台时如何处理?
换句话说,我需要的是识别当应用程序在后台运行时用户点击的确切通知
Best Answer-推荐答案 strong>
创建 UILocalNotification 时,您可以设置 userInfo 以设置任何关联的数据/唯一标识符。
例如
UILocalNotification *someNotification = [[UILocalNotification alloc] init];
[someNotification setUserInfo{ kSomeUniqueIdentifierKey : @"identifier" }];
然后,
-(void)applicationUIApplication *)application didReceiveLocalNotificationUILocalNotification *)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/
|