Delphi iOS XE4. Apple Push Notification. Capturando la notificación cuando la aplicación no se está ejecutando.

En los artículos anteriores vimos como dar el soporte a los métodos necesarios, aqui veremos que debemos modificar en el método «didFinishLaunchingWithOptions» sobreescrito, con la finalidad de capturar la notificación remota cuando la aplicación no se esta ejecutando:

function TMyApplicationDelegate.didFinishLaunchingWithOptions(Sender: UIApplication;
  didFinishLaunchingWithOptions: NSDictionary): Boolean; cdecl;
var
  ANotifTypes : NSUInteger;
  dictNoti : NSDictionary;
begin
  inherited;
  ANotifTypes := (0 shl 1) or (1 shl 1) or (2 shl 1);
  // Asignar el soporte a las notificaciones remotas!!!
  TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication).registerForRemoteNotificationTypes(Addr(ANotifTypes));
  // Verificar si la aplicaciones es ejecutada desde una notificacion
  if (didFinishLaunchingWithOptions.count > 0) then
  begin
    // Obtener el Key respectivo esta en el NSDictionary de Entrada
    dictNoti := TNSDictionary.Wrap(didFinishLaunchingWithOptions.objectForKey(
      (NSSTR('UIApplicationLaunchOptionsRemoteNotificationKey') as ILocalObject).GetObjectID));
    // Validar si esta disponible
    if(dictNoti.count > 0)then
    begin
      // En la variable dictNoti se encuentra el PayLoad de la Notificacion!!! Eureka.
      // Limpiar las Notiticaciones
      CleanAllNotifications;
    end;
  end;
  Result := True;
end;
Esta entrada fue publicada en Apple iOS, Delphi. Guarda el enlace permanente.

Deja una respuesta