Как отобразить баннер push-уведомлений с помощью push-набора в ios 11?
Я использую push-комплект для получения push-уведомлений, но при получении уведомления баннер не отображается.
Я использую следующий код для отображения баннера:
let content = UNMutableNotificationContent()
content.title = (dict_body?["title"] as? String)!
content.body = str_body!
content.sound = UNNotificationSound.default()
// configure trigger
let calendar = Calendar.init(identifier: .gregorian)
let dateComponents = calendar.dateComponents([.day, .month, .year, .hour], from: Date())
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)
// create the request
let request = UNNotificationRequest.init(identifier: (dict_body?["senderid"] as? String)!, content: content, trigger: trigger)
// schedule notification
UNUserNotificationCenter.current().add(request) { (error: Error?) in
if let error = error {
// handle error
print("error is-->\(error.localizedDescription)")
}
}
DidFinishlaunch Код:-
if #available(iOS 10.0, *)
{
let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.badge, .sound, .alert], completionHandler: {(grant, error) in
if error == nil {
if grant
{
application.registerForRemoteNotifications()
}
else
{
//User didn't grant permission
print("don't allowed notification permission")
let alert = UIAlertController(title: Constants.appName, message: "This application needs Notification access in order to work properly.So please enable Notification service from Settings.", preferredStyle: .alert)
let SettingsButton = UIAlertAction(title: "Settings", style: .default, handler:
{(_ action: UIAlertAction) -> Void in
UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)
})
let DeniedButton = UIAlertAction(title: "Cancel", style: .default, handler:
{(_ action: UIAlertAction) -> Void in
})
alert.addAction(SettingsButton)
alert.addAction(DeniedButton)
self.window?.rootViewController?.present(alert, animated: true, completion: nil)
}
} else {
}
})
}
else
{
// Fallback on earlier versions
let notificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(notificationSettings)
}
Над кодом для получения push-уведомлений. Так что любые изменения применяются в этом коде, пожалуйста, помогите мне.
У любого есть решение тогда, пожалуйста, помогите мне.
Спасибо.
1 ответ
Сначала установите делегата для UNUserNotificationCenter
лайк
UNUserNotificationCenter.current().delegate = self
Затем реализовать UNUserNotificationCenterDelegate
метод
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
{
completionHandler(.alert)
}