ios - remote - unusernotificationcenter swift 4
UIUserNotificationSettings se niega a aceptar mĂșltiples tipos de notificaciones en swift (2)
Si estás dentro de AppDelegate prueba esto
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil))
UIApplication.sharedApplication().cancelAllLocalNotifications()
return true
}
Esta pregunta ya tiene una respuesta aquí:
Estoy tratando de ser rápido para enviar una notificación. Este es el código que tengo en el archivo appdelegate.swift que está registrando la notificación
application.registerUserNotificationSettings(
UIUserNotificationSettings(
forTypes:UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, categories: nil))
Me sale este error:
Operador binario ''|'' a dos operandos ''UIUserNotificationType''.
Si pudieras ayudarme a encontrar una solución para este problema, sería genial.
Gracias
Prueba esto
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge , .Sound], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
Para iOS 10: primero importa UserNotification
import UserNotifications
A continuación, agregue delegar a appDelegate:
class AppDelegate: UIResponder, **UIApplicationDelegate**
Luego, las notificaciones de registro:
if #available(iOS 10.0, *)
{
let center = UNUserNotificationCenter.currentNotificationCenter()
center.delegate = self
//center.setNotificationCategories(nil)
center.requestAuthorizationWithOptions([.Alert,.Badge,.Sound]) {
granted,error in
if (error == nil) {
UIApplication.sharedApplication().registerForRemoteNotifications()
}
}
}
Swift 3.0
if #available(iOS 10.0, *) {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options:[.badge, .alert, .sound]) { (granted, error) in
// Enable or disable features based on authorization.
}
}
else
{
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.sound, .alert, .badge], categories: nil))
}
UIApplication.shared.registerForRemoteNotifications()
Swift 4.0
Frist haz por encima del estribo y luego registras la notificación en el hilo principal como:
DispatchQueue.main.async(execute: {
UIApplication.shared.registerForRemoteNotifications()
})