ver sesion las iniciar fotos descargar como apple ios notifications flock

sesion - ¿Cómo detecta la aplicación iOS ''Flock'' cuando se toman las fotos?



icloud iniciar sesion (2)

Flock es una aplicación de iOS razonablemente nueva para los chicos de Bump , que tiene una función interesante. De alguna manera sabe cuándo las fotos han sido tomadas por otra aplicación, notifica al usuario (en forma de centro de notificación) y le pide al usuario que las comparta en un álbum. Hay otras características interesantes, por supuesto, pero estoy particularmente interesado en esta característica para otra aplicación en la que estoy trabajando.

No puedo ver cómo la API facilita esto directamente. Miré detenidamente a través de la documentación API de notificaciones, y las aplicaciones ciertamente pueden registrarse para mostrar una notificación al usuario en una fecha / hora futura, y así ser abierto por el usuario en ese momento ... pero no pude encontrar ninguna notificación del sistema para cuando una foto ha sido tomada. La API de notificaciones también permite notificaciones generadas por el servidor, pero una vez más, no sé cómo el servidor de Flock podría saber cuándo el usuario ha tomado una foto en una aplicación diferente.

Instalé la aplicación hace un par de días y solo recibo la notificación cuando tomé fotos. No parece ser solo un recordatorio diario.

¿Alguna idea de cómo Flock (y potencialmente otras aplicaciones) logran hacer esto?


No he usado este Framework personalmente, pero tropecé con esta documentación cuando hacía investigación para un cliente.

Referencia del marco de Apple Photos

Debajo de Características y conceptos hay una entrada para "Observación de cambio" que dice:

Use el objeto PHPhotoLibrary compartido para registrar un controlador de cambios para las entidades de fotos que capta. Fotos le dice a su aplicación cada vez que otra aplicación o dispositivo cambia el contenido o los metadatos de un activo o la lista de activos en una colección. Los objetos PHChange proporcionan información sobre el estado del objeto antes y después de cada cambio con semántica que facilita la actualización de una vista de colección o una interfaz similar.

Parece que puede utilizar el singleton PHPhotoLibrary para registerChangeObserver: en una clase suya (que adopta el protocolo PHPhotoLibraryChangeObserver ) para recibir objetos PHChange del método photoLibraryDidChange:


Después de un par de días de observar el comportamiento de la aplicación (y mucha búsqueda en Google y tropezar con discusiones arcanas sobre el bloqueo de archivos), tengo una fuerte sospecha de cómo funciona: Flock simplemente se ha registrado en Servicio de ubicación de cambio significativo , que despierta el aplicación y proporciona una pequeña ventana de procesamiento cuando el usuario cambia de ubicación. La documentación dice:

En el momento de la activación, tu aplicación se pone en segundo plano y se le da una pequeña cantidad de tiempo para procesar los datos de ubicación.

Sospecho que Flock está revisando la biblioteca de imágenes en ese punto y activando una notificación local si se han agregado fotos. Esto cuadra con mi experiencia de que Flock me da una notificación local ~ 10 minutos después de que me vaya de casa ... que, en caso de que alguno de los desarrolladores de Bump / Flock estén leyendo esto, es casi el peor momento para que pueda ordenar mis fotos y compartirlos en un álbum (tal vez debería usar el transporte público con más frecuencia).

Hay algunas otras respuestas interesantes aquí , aquí y aquí ... pero en su mayor parte discuten las notificaciones locales (que solo se pueden programar para un momento determinado, y siempre alertarán al usuario en ese momento, por lo que no son realmente tareas en segundo plano) o la ventana de procesamiento de segundo de 600 segundos para aplicaciones que el usuario ha cerrado (lo que sin duda es una tarea en segundo plano, pero que claramente no es apta para ejecutar una tarea en segundo plano una vez al día o algo así).

Los desarrolladores de Bump también proporcionan algunas pistas sobre la arquitectura subyacente de la aplicación aquí .