ios - UserNotification 未显示(iOS 10)

标签 ios objective-c usernotifications

我无法触发 UserNotification在 iOS 10 中。我将从我的代码开始:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
        UNAuthorizationOptions options = (UNAuthorizationOptionBadge | UNAuthorizationOptionAlert | UNAuthorizationOptionSound);

        center.delegate = self;

        [center requestAuthorizationWithOptions: options
                              completionHandler: ^(BOOL granted, NSError * _Nullable error) {
                                  if (granted) {
                                      NSLog(@"Granted notifications!");
                                  }
                              }];
//

这行得通,我看到了日志。

然后,我有:
-(void)application: (UIApplication *)application performFetchWithCompletionHandler: (void (^)(UIBackgroundFetchResult))completionHandler {
 //

UNMutableNotificationContent *content = [UNMutableNotificationContent new];
                content.title = NSLocalizedString(@"Updates are available", nil);

                UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval: 1
                                                                                                                repeats: NO];
                UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier: @"IDLocalNotification"
                                                                                      content: content
                                                                                      trigger: trigger];

                UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

                [center addNotificationRequest: request withCompletionHandler: ^(NSError * _Nullable error) {
                    if (!error) {
                        NSLog(@"Notification was requested!");
                    }
                }];

同样,这有效,我看到了日志。

但是我的屏幕上没有看到通知(触发延迟只有 1 秒,但我也尝试了更大的值)。

此外,willPresentNotification从未达到委托(delegate)方法。

我错过了什么?

最佳答案

发现了问题。

原来我需要设置body的内容,而不仅仅是 title :

UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.body = [NSString localizedUserNotificationStringForKey: @"Updates are available" arguments: nil];

我什至可以离开 title出来,它的工作原理。

关于ios - UserNotification 未显示(iOS 10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41785105/

相关文章:

ios - GKMatchmaker 自定义媒人 View Controller 已取消

ios - 当 slider 动画时更新标签上的 slider 值

ios - UserNotifications 显示过去的时间(例如 : 2 minutes ago)

iPhone iOS 如何将 Class 对象与另一个类对象进行比较?

ios - RxDataSources 和改变模型的能力

ios - 2 NSDates 之间的差异,并将结果除以 Int - Swift

ios - 如何关闭 MMTransitionAnimator 中的 View

ios - 了解强指针和超出范围

ios - 在没有用户交互的情况下使用 iOS 10 UserNotifications 进行后台获取执行时间

swift - UNNotificationContent userInfo 在处理响应时为空,但在发出请求时正确