首页 > 解决方案 > 自定义通知式弹出窗口

问题描述

当推送通知到达并且应用程序处于前台时,我需要显示自定义弹出窗口。它必须来自屏幕的上边缘,保持可见几秒钟,然后消失在上边缘后面。

我的问题是如何显示它?据我所知,为了使视图可见,我必须将其作为子视图添加到某些现有视图中。但是推送通知可能会随机出现,所以我事先不知道哪个视图控制器会在那个时候处于活动状态。

那么:我在哪里附加我的自定义视图(使其在所有内容之上可见)?

标签: ios

解决方案


您需要在您的 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])
}

在点击通知时,您可以获得与应用程序处于后台时相同的行为。


推荐阅读