usar segundo plano para como cerrar aplicaciones ios objective-c ios8 background-process whatsapp

ios - segundo - whatsapp para ipad



¿Cómo funciona la versión web de Whatsapp en dispositivos iOS considerando que el sistema operativo cierra aplicaciones en 30 segundos? (3)

Ahora, para aquellos que no lo saben, pueden ir a https://web.whatsapp.com/ y sincronizar sus chats de Whatsapp intercambiando un código QR y chatear a través de la extensión web de la aplicación.

No me interesa la forma en que tienen un protocolo de enlace inicial (puede estar comunicándose con los servidores de Whatsapp) ni la forma en que sincronizan los datos tan rápidamente para chatear (puede que estén usando sockets abiertos directamente desde el dispositivo al cliente).

Tengo curiosidad por saber cómo funciona la aplicación en segundo plano en iOS . AFAIK ejecutando un fondo El Intent Service es bastante simple. Pero no para iOS. iOS permite solo hasta 30 segundos después de que la aplicación se apaga normalmente.

1) Intenté bloquear la aplicación (deslizar hacia arriba) (aún así la versión web se estaba ejecutando normalmente)

2) Deshabilité la Background App refresh la Background App refresh la versión web no se detuvo.

3) Incluso deshabilitar Notifications aún la versión web funcionó normalmente.

4) Además, no tienen una Blue bar como "me gusta" cuando Google Maps te da instrucciones que indican que la aplicación se está ejecutando en BG

5) ¿Están utilizando Dummy Geo Fencing para mantenerlos con vida? (pero eso también requiere la actualización de la aplicación BG)

Es una nueva característica en iOS 8 que se introdujo y no tengo conocimiento de



Según los docs la aplicación puede permanecer en segundo plano realizando actualizaciones limitadas de la aplicación. Puede continuar extendiendo el proceso en segundo plano uno tras otro. Buscar en Realizar tareas de longitud finita. Creo que matar la aplicación desde el fondo todavía ejecuta acciones registradas por el sistema.

Whatsapp hace un token de sesión web inteligente + generación de token de fondo para mantener la sesión válida.


Solo como nota al margen, Apple introdujo el punto de extensión del servicio de notificación en iOS 10, que puede usarse para lograrlo. Lo siguiente se aplica solo a iOS 9.x o anterior.

Ninguna aplicación en iOS puede tener una larga vida en segundo plano con un socket keep-alive, o se garantiza que se activará mediante notificaciones remotas, excepto las que utilizan el modo de fondo VoIP (modos de fondo OT: y IIRC Bluetooth).

  • Una aplicación tiene solo ~ 5 segundos de tiempo de ejecución en applicationDidEnterBackground: después de ser puesta en segundo plano, a menos que esté registrada para cualquier modo o tarea en segundo plano. La aplicación se terminaría si se agota el tiempo en este método de delegado.
  • El modelo de tarea en segundo plano mencionado por @xoail tiene un límite de tiempo impuesto por la aplicación, impuesto por el sistema (¿hasta 30 segundos ...?) Y no se puede ampliar. Es para que una aplicación complete su trabajo actual, por ejemplo, subiendo un medio, antes de ser suspendida. El servicio de transferencia en segundo plano, desde iOS 7.0, es una alternativa para la transferencia de archivos de larga ejecución.
  • Se observa que Silent Remote Notificaiton se activa de forma consistente solo en el cargador y Wi-Fi, pero siempre se acelera con iOS. Así que es un poco indeterminista, y mucho menos el hecho de que esto se puede desactivar al presionar el interruptor de actualización de la aplicación de fondo de la aplicación.
  • El modo de fondo de VoIP (en iOS 8 y posterior) garantiza llamar al controlador de la aplicación cuando se recibe una notificación de VoIP de los APN. Pero las Pautas de revisión de aplicaciones establecen claramente que los modos de fondo solo deben usarse para el propósito para el que fueron diseñados.

Entonces, o bien Apple renuncia a WhatsApp por el uso del modo de fondo de VoIP con un propósito diferente al de WhatsApp Call, o WhatsApp pasa a alejarse de la arquitectura de "usar tu teléfono para sincronizar" y hace algo nuevo para los iPhones.