gpt4 book ai didi

ios - 使用 UNUserNotificationCenter 后没有调用 didReceiveLocalNotification

转载 作者:可可西里 更新时间:2023-11-01 03:32:05 24 4
gpt4 key购买 nike

我正在安排本地通知。它适用于 iOS 9.x,但自 iOS 10 以来

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

当应用程序在 iOS 10 上运行时不会被调用。

我知道 iOS 引入了新的 UserNotifications 框架,但这不应该停止 iOS 9 API 的工作。

我该如何解决这个问题?

最佳答案

如您所知,iOS 10 引入了 UNUserNotifications 框架来处理本地和远程通知。使用此框架,您可以设置一个委托(delegate)来检测何时显示或点击通知。

[UNUserNotificationCenter currentNotificationCenter].delegate = yourDelegate;

...

// In your delegate ...

- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {

// Notification arrived while the app was in foreground

completionHandler(UNNotificationPresentationOptionAlert);
// This argument will make the notification appear in foreground
}

- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)())completionHandler {

// Notification was tapped.

completionHandler();
}

现在,如果您仍想使用旧的(已弃用的)application:didReceiveLocalNotificationapplication:didReceiveRemoteNotification:fetchCompletionHandler,解决方案很简单:只需不要't 将任何委托(delegate) 设置为 UNUserNotificationCenter

请注意,静默远程通知(那些包含 content-available 键且没有 alertsoundbadge) 始终由 application:didReceiveRemoteNotification:fetchCompletionHandler 处理,即使您已经设置了委托(delegate)。

关于ios - 使用 UNUserNotificationCenter 后没有调用 didReceiveLocalNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39300865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com