I am trying to create a local notification for my app using Apple\'s UNUserNotificationCenter.
Here is my code:
let center = UNUserNotificationCenter
Add this code into didFinishLaunchingWithOption
in AppDelegate.swift file
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound])
{ (granted, error) in
// Enable or disable features based on authorization.
}
Add this Protocoal UNUserNotificationCenterDelegate
.
and add this delegate into your controller. and dont forget to set delegate.
UNUserNotificationCenter.current().delegate = self
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("Notification being triggered")
//You can either present alert ,sound or increase badge while the app is in foreground too with ios 10
//to distinguish between notifications
if notification.request.identifier == "yourrequestid"{
completionHandler( [.alert,.sound,.badge])
}
}
I had the same problem.
If your content body is blank ie(content.body == "") then you won't get a notification even if you do have a title.
So the solution is to make sure that your content body is not an empty string.