Как отобразить баннер 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)

}
Другие вопросы по тегам