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; |