本地通知内容:副标题或 body 不显示 [Swift 5]

Local notification contents: subtitle or body not showing [Swift 5]

我之前在我的应用程序中使用过只显示标题的本地通知。现在我想为每个通知添加一个副标题和 body。我为 UNMutableNotificationContent 添加了 subtitlebody。但是当通知出现时,副标题或 body 不存在。 我该如何解决这个问题?

以下是我添加本地通知的方法:

        let content      = UNMutableNotificationContent()
        content.title    = "title works!"
        content.subtitle = "testing subTitle"
        content.body = "testing body"
        content.sound    = .default

        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

        let identifier = "notificationId"
        let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)

        UNUserNotificationCenter.current().add(request) { (error) in
            if let error = error {
                print("Hey listen! Error adding notification: \(error.localizedDescription)")
            } else {
                print("saved notification")
            }
        }

以下是我请求通知权限的方式:

private func requestNotificationAuthorization() {
        UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
            if let error = error {
                print("Hey listen! Got an error requesting notification authorization: \(error.localizedDescription)")
            } else {

                if granted {
                    DispatchQueue.main.async {
                      UIApplication.shared.registerForRemoteNotifications()
                    }
                } else {
                    print("not granted")
                }
            }
        }
    }

这是我的 willPresent 代码:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        completionHandler([.alert, .badge, .sound])
    }

你指的是前台接收本地通知还是后台接收?

如果它在前台,您将使用 userNotificationCenter(_:willPresent:withCompletionHandler:),在这种情况下,如果您想要一个警报,您需要自己处理警报(在您的代码中)。因此,您可以从 userNotificationCenter(_:willPresent:withCompletionHandler:) 开始检查您的代码,看看您是否有仅显示标题的自定义警报。 (您也可以编辑 post 以向我们展示您在 userNotificationCenter(_:willPresent:withCompletionHandler:) 中拥有的内容)。