para ipsw descargar ios iphone

ios - ipsw - Comprobando el registro de notificaciones push: isRegisteredForRemoteNotifications Not Updating



ipsw ios 10 (2)

Debido a que iOS 8 registra el dispositivo y proporciona un token, incluso si el usuario se retira de los envíos.

En ese caso, los empujes no se presentan al usuario cuando se envía el empuje, pero si la aplicación se está ejecutando, obtiene la carga útil para que pueda actualizarla cuando la aplicación se esté ejecutando ...

Para verificar si las notificaciones push están habilitadas en iOS 8, debe verificar los tipos de notificación de usuario habilitados:

- (BOOL)pushNotificationsEnabled { if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]) { UIUserNotificationType types = [[[UIApplication sharedApplication] currentUserNotificationSettings] types]; return (types & UIUserNotificationTypeAlert); } else { UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; return (types & UIRemoteNotificationTypeAlert); } }

El siguiente método sigue devolviendo el mismo valor:

[[UIApplication sharedApplication] isRegisteredForRemoteNotifications];

Cada vez que se ejecuta este código, el resultado es SÍ. Incluso cuando entro en la aplicación "Configuración" y configuro las notificaciones push en "desactivado" para mi aplicación, cuando se ejecuta el código anterior, se evalúa como SÍ.

Otros detalles: * Estoy ejecutando la aplicación en un iPhone que tiene iOS 8.1.3 * Estoy ejecutando la aplicación en Xcode 6.1 y tengo el teléfono conectado físicamente a mi máquina

¿Alguna idea de por qué el valor de "isRegisteredForRemoteNotifications" no cambia?


Si está utilizando Swift 2, los operadores bitwise no funcionarán con UIUserNotificationType. Aquí hay una solución que usa Swift 2, iOS 8+:

func hasPushEnabled() -> Bool { //ios 8+ if UIApplication.sharedApplication().respondsToSelector("currentUserNotificationSettings") == true { let settings = UIApplication.sharedApplication().currentUserNotificationSettings() if (settings?.types.contains(.Alert) == true){ return true } else { return false } } else { let types = UIApplication.sharedApplication().enabledRemoteNotificationTypes() if types.contains(.Alert) == true { return true } else { return false } }