ios - 自定义通知式弹出窗口

标签 ios

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

我的问题是如何显示它?据我所知,为了使 View 可见,我必须将其作为 subview 添加到某些现有 View 中。但是推送通知可能会随机出现,所以我事先不知道哪个 View Controller 将在此时处于事件状态。

那么:我应该将自定义 View 附加到哪里(以使其在所有内容之上可见)?

最佳答案

您需要在您的 appDelegate 中实现以下委托(delegate),您的推送通知也会出现在前台。

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])
}

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

关于ios - 自定义通知式弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50354948/

相关文章:

iphone - iOS 创建宏

ios - 无法在 NSNotificaitonCenter 的 addObserver : selector: name: object: method 中使用 UIApplicationDidEnterBackgroundNotification 作为名称

ios - YouTube视频解析器iOS

ios - xCode - 将 SSL 证书添加到 iOs 配置文件(以编程方式)

ios - 使用函数更新其他类中的标签

ios - 卡在Apple的SwiftUI教程第5章(更新App数据)

iOS:将 CIFilter 应用于 UIImage 时,结果图像会旋转

iphone - 如何申报 Grand Central Dispatch

ios - 在 UITabBar 中启动 Storyboard View

iOS:在标签 View 中弹出 subview