本地通知内容:副标题或 body 不显示 [Swift 5]
Local notification contents: subtitle or body not showing [Swift 5]
我之前在我的应用程序中使用过只显示标题的本地通知。现在我想为每个通知添加一个副标题和 body。我为 UNMutableNotificationContent
添加了 subtitle
和 body
。但是当通知出现时,副标题或 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:)
中拥有的内容)。
我之前在我的应用程序中使用过只显示标题的本地通知。现在我想为每个通知添加一个副标题和 body。我为 UNMutableNotificationContent
添加了 subtitle
和 body
。但是当通知出现时,副标题或 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:)
中拥有的内容)。