ios - todas - ver notificaciones antiguas en iphone
La recuperación de fondo de iOS no funciona aunque el modo de fondo correcto está configurado (5)
Mi aplicación tiene los modos de fondo habilitados con la función Recuperación en segundo plano activada y validé que el plist incluye el modo de búsqueda adecuado.
También he configurado el intervalo de la siguiente manera:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum);
return true;
}
Y he añadido el controlador de la siguiente manera:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
// Get some new data here
completionHandler(UIBackgroundFetchResult.NewData);
}
Intenté ir a Debug-> Simulate Background Fetch, pero no importa lo que nunca ingrese al performFetchWithCompletionHandler
. También intenté ejecutar la aplicación bajo un esquema que tiene activada la opción "Iniciar debido a un evento de recuperación en segundo plano". La ejecución bajo este esquema simplemente inicia la aplicación como de costumbre en el simulador, sin necesidad de llamar a performFetchWithCompletionHandler
.
¿Algunas ideas?
¡Gracias!
EDITAR: Esto parece estar afectando también a la versión de lanzamiento de mi aplicación, por lo que puede no estar aislado en el simulador. Estoy corriendo Swift 1.2.
EDITAR 2: Mi informe de error se cerró simplemente porque es un duplicado de otro informe de error que describe el mismo problema. Todavía no hay información que confirme que el problema esté aislado en el simulador.
EDIT 3: no se menciona una solución en las notas de la versión Xcode 6.4 Beta 2. :-(
En Xcode 8.3.2 este problema no existe. Debug-> Simulate Background Fetch hace su trabajo. Incluso funciona en un simulador.
Esta es la única manera que he encontrado para probar la obtención de antecedentes.
- Edita tu esquema
- Seleccione Ejecutar
- Seleccione opciones
- Marque la opción "Iniciar debido a un evento de recuperación en segundo plano"
- Conecte su dispositivo iOS y ejecute la aplicación en él. No funciona en el simulador de iOS.
Este método se llama.
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
}
olvidaste escribir @escaping después de completarHandler
Puede crear su propia notificación de búsqueda de fondo en su dispositivo real a través de Houston
- instale Houston: abra la aplicación Terminal y use
sudo gem install houston
- crear certificado PEM para su aplicación Generar archivo .pem Usado para configurar la notificación Apple PUSH
- Obtenga su token de dispositivo de
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
- Ejecutar Terminal y usar
para la notificación de inserción habitual: apn push "<your_device_token>" -c /path/to/apple_push_notification.pem -m "Hello from the command line!"
para la notificación de inserción en segundo plano: apn push "<your_device_token>" -c /path/to/apple_push_notification.pem -n
Más opciones para la aplicación apn
:
c.option ''-m'', ''--alert ALERT'', ''Body of the alert to send in the push notification''
c.option ''-b'', ''--badge NUMBER'', ''Badge number to set with the push notification''
c.option ''-s'', ''--sound SOUND'', ''Sound to play with the notification''
c.option ''-y'', ''--category CATEGORY'', ''Category of notification''
c.option ''-n'', ''--[no]-newsstand'', ''Indicates content available for Newsstand''
c.option ''-d'', ''--data KEY=VALUE'', Array, ''Passes custom data to payload (as comma-delimited "key=value" declarations)''
c.option ''-P'', ''--payload PAYLOAD'', ''JSON payload for notifications''
c.option ''-e'', ''--environment ENV'', [:production, :development], ''Environment to send push notification (production or development (default))''
c.option ''-c'', ''--certificate CERTIFICATE'', ''Path to certificate (.pem) file''
c.option ''-p'', ''--[no]-passphrase'', ''Prompt for a certificate passphrase''
Vea la nota de lanzamiento de XCode: https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html
"El comando del menú Xcode Simulator Background Fetch no funciona.
Utilice el comando de menú en simulador de iOS en su lugar. (20145602) "