在iOS应用程序中,可以通过以下步骤阻止通知,当设备使用Firebase处于锁定状态时:
import Firebase
import UserNotifications
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
UNUserNotificationCenter.current().delegate = self
return true
}
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
if UIApplication.shared.applicationState == .inactive || UIApplication.shared.applicationState == .background {
// 设备处于锁定状态,取消通知显示
completionHandler([])
} else {
// 设备处于活动状态,显示通知
completionHandler([.alert, .badge, .sound])
}
}
}
func registerForPushNotifications() {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
guard granted else { return }
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
以上步骤完成后,当设备处于锁定状态时,应用程序将取消通知的显示;当设备处于活动状态时,应用程序将显示通知。
腾讯云提供了云推送(TPNS)服务,可用于在iOS应用程序中发送推送通知。您可以在腾讯云官网了解更多关于云推送的信息:腾讯云云推送。
领取专属 10元无门槛券
手把手带您无忧上云