背景:
在iOS应用中,当应用在前台运行时,是不会默认弹出通知的。这是iOS的设计决定,以避免用户在使用应用的过程中被打扰。然而,如果你希望在应用在前台的时候也能收到通知,你可以在你的应用代码中进行一些修改。
添加代理
-
在AppDelegate的didFinishLaunchingWithOptions:方法中设置通知中心的代理
-
在你的AppDelegate中实现userNotificationCenter(_:willPresent:withCompletionHandler:)方法。
public func setNotifiAuth() {
let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
if granted == true {
dePrint("允许通知")
} else {
dePrint("不允许通知")
}
}
}extension LocalNotification: UNUserNotificationCenterDelegate {
// 前台显示弹窗
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification) async -> UNNotificationPresentationOptions {
return .alert
}
}