el esquema de URL personalizado no funciona cuando la aplicación no se ejecuta en segundo plano

Estoy llamando a una URL personalizada de safari para iniciar una aplicación. Funciona bien si la aplicación se ejecuta en segundo plano. Pero cuando la aplicación no se ejecuta en segundo plano, pero ya está instalada en el dispositivo, la aplicación no se inicia. He implementado los dos methods siguientes:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 

pero ninguno de ellos se invoca cuando la aplicación no se ejecuta en segundo plano.

También he buscado en Google y he descubierto que podemos ejecutar la aplicación con el siguiente código cuando la aplicación no se está ejecutando en segundo plano

 if ( [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey] != nil ) { NSURL *url =(NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey]; [self application:application handleOpenURL:url]; } 

en

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

Pero desafortunadamente, didFinishLaunchingWithOptions tampoco se desencadena. ¿Alguien tiene algún puntero?

PS: este problema ocurre solo en iPad. Funciona bien en iPhone.

Yo estaba enfrentando el mismo problema.

Parece que nuestro código se estaba ejecutando demasiado rápido.

Al insert un retraso para ejecutar su código personalizado, se resolverá el problema.

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(yourCustomActions) userInfo:nil repeats:NO]; return YES; } 

Espero eso ayude

Llegó a su info.plist y realiza los cambios necesarios.

  1. Agregar nueva fila -> Tipos de URL
  2. Expandelo
  3. en el elemento 0 agregar nueva fila —> Esquemas de URL
  4. Expandelo
  5. En el elemento 0 debajo de él, agregue la URL personalizada que desea usar

  6. agregue una fila en el elemento 0 de urlTypes -> identificador de URL

  7. Proporciona el ID del package de tu aplicación allí.

por ejemplo: anubhab: //stackoverflow.com/

para la url personalizada anterior, establecería el elemento del Esquema de URL 0 como: anubhab

ver la image adjunta para más detalles introduzca la descripción de la imagen aquí

He seguido estos enlaces . Espero eso ayude. Funciona bien para mí, incluso si elimino la aplicación de background.