当推送通知到达且应用程序在前台时,我需要显示自定义弹出窗口。它必须来自屏幕的上边缘,保持可见几秒钟,然后消失在顶部边缘后面。
我的问题是如何展示它?据我所知,为了使视图可见,我必须将其作为子视图添加到某个现有视图中。但是推送通知可能是随机发生的,所以我不知道哪个视图控制器会在那个时刻处于活动状态。
那么:我将自定义视图附加到哪里(使其在所有内容上都可见)?
答案 0 :(得分:1)
您需要在appDelegate中实现以下委托,并且您的推送通知也会显示在前台。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
completionHandler()
}
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.alert, .sound])
}
点击通知后,您可以获得与应用在后台时相同的行为。