stories developer data ios api instagram openurl

ios - developer - Cómo manejar UIApplication handleOpenURL con múltiples URL''s



instagram stories api (1)

Tanto Facebook como Instagram hicieron configurar un esquema de URL personalizado para sus servicios, por lo que lo usaremos para filtrar la URL.

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if ([[url scheme] isEqualToString:INSTAGRAM_SCHEME]) return [self.instagram handleOpenURL:url]; if ([[url scheme] isEqualToString:FACEBOOK_SCHEME]) return [PFFacebookUtils handleOpenURL:url]; return NO; }

Donde defines tus variables como

#define INSTAGRAM_SCHEME @"ig12345678910" #define FACEBOOK_SCHEME @"fb12345678910"

exactamente como lo hizo en su archivo Info.plist

Tengo una aplicación que usará tanto la API de Facebook como la de Instagram, y ambas requieren el uso de este método de delegado:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [PFFacebookUtils handleOpenURL:url]; }

y este es el código proporcionado por instagram:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [self.instagram handleOpenURL:url]; }

Como puede ver, este es un problema porque solo puedo devolver un manejador de URL, pero necesito poder decidir cuál.

En mi delegado de aplicación, comenté la opción de Instagram anterior y solo dejé Facebook. Como era de esperar, Facebook funcionará bien, pero me sale este error cuando toco autorizar en Instagram:

Obviamente, Facebook está tratando de manejar la URL de retorno de Instagram, por lo que tendrá un error.

¿Es plausible verificar la URL para ver si contiene la ID de la aplicación para cada servicio que estoy intentando? Por lo tanto, si la URL contiene la ID del instagram, devuelva el controlador de instagram, si contiene la ID de Facebook, luego devuelva el controlador de Facebook.

¡Cualquier ayuda sería genial, gracias!