当使用新的通知机制点击本地通知时,如何打开应用程序?

Posted

技术标签:

【中文标题】当使用新的通知机制点击本地通知时,如何打开应用程序?【英文标题】:How do I open the app when local notification is tapped with the new notification mechanisms? 【发布时间】:2017-01-12 07:40:16 【问题描述】:

application:didReceiveLocalNotification:ios10 开始被弃用,developer page 没有指向任何替代方案。

UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"localnotification"
                                                                      content:content
                                                                      trigger:trigger];


UNUserNotificationCenter* notificationCenter = [UNUserNotificationCenter currentNotificationCenter];
[notificationCenter requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert)
                                  completionHandler:^(BOOL granted, NSError * _Nullable error) 
                          if (!error) 
                              NSLog(@"request authorization succeeded!");
                          
                      ];


[notificationCenter addNotificationRequest:request
                     withCompletionHandler:nil];

我已经创建了一个如上所示的通知,其中包含适当的内容和触发器。现在我希望应用程序在我点击通知时打开,但我似乎无法弄清楚如何。

【问题讨论】:

UILocalNotification is deprecated in iOS10的可能重复 How can I mute the capture sound in AVFoundation?的可能重复 根据要求,我已将我的问题编辑得更具体。重复的可能性不能回答我的问题。 【参考方案1】:

userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:

如果要执行自定义操作,则需要实现 UNUserNotificationCenterDelegate 中的此方法。

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler 
    if ([response.actionIdentifier isEqualToString:UNNotificationDefaultActionIdentifier]) 
        NSLog(@"app opened");
    

【讨论】:

以上是关于当使用新的通知机制点击本地通知时,如何打开应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

推送通知打开一个新活动

当用户点击 Flutter App 中的 Firebase 通知时如何打开链接?

iOS点击推送通知打开具体的viewcontroller

当应用程序处于前台时如何显示本地通知

当用户使用 iOS 13 Swift 5 点击推送通知时,在特定视图中打开应用程序

当用户不打开应用程序时如何发送通知?