2017-03-04 6 views
0

En didFinishLaunchingWithOptions ici, je vérifie simplement mon userName et password pour naviguer utilisateur de LogInVC à HomeVC.Comment faire checkng d'authentification « à l'aide de régim URL de didFinishLaunchingWithOptions paramètres

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

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    if([defaults objectForKey:@"username"]!=nil && ![[defaults objectForKey:@"password"] isEqualToString:@""]) { 
     [self navigateToMaskViewController]; 

    } else { 
     [self navigateToRSSignInViewController]; 

    } 

    return YES; 
} 

En openURL: sourceApplication: ici, je reçois mes identifiants de connexion (userName & mot de passe), que je veux utiliser à didFinishLaunchingWithOptions pour le contrôle de authetication.

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

    BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application 
                    openURL:url 
                 sourceApplication:sourceApplication 
                   annotation:annotation 
        ]; 

    NSLog(@"Calling Application Bundle ID: %@", sourceApplication); 
    NSLog(@"URL scheme:%@", [url scheme]); 
    NSLog(@"URL query: %@", [url query]); 

    if ([url query]) { 
     NSMutableDictionary *queryDict = [[NSMutableDictionary alloc] init]; 
     queryDict = [self getValue:[url query]]; 
     NSString *userName = queryDict[@"userName"]; 
     NSString *password = queryDict[@"password"]; 

     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setObject:userName forKey:@"username"]; 
     [defaults setObject:password forKey:@"password"]; 
     [defaults synchronize]; 

     return YES; 

    } else { 

    } 

    return handled; 
} 

- (NSMutableDictionary *)getValue:(NSString *)query 
{ 
    NSMutableDictionary *queryStringDictionary = [[NSMutableDictionary alloc] init]; 
    NSArray *urlComponents = [query componentsSeparatedByString:@"&"]; 

    for (NSString *keyValuePair in urlComponents) 
    { 
     NSArray *pairComponents = [keyValuePair componentsSeparatedByString:@"="]; 
     NSString *key = [[pairComponents firstObject] stringByRemovingPercentEncoding]; 
     NSString *value = [[pairComponents lastObject] stringByRemovingPercentEncoding]; 

     [queryStringDictionary setObject:value forKey:key]; 
    } 

    return queryStringDictionary; 
} 

Mais pour le schéma d'URL didFinishLaunchingWithOptions n'a pas appelé après openURL: sourceApplication:. Alors, comment puis-je faire mon contrôle d'authentification didFinishLaunchingWithOptions? Si quelqu'un le comprend, partagez la solution avec moi. Un grand merci d'avance.

Répondre

0

didFinishLaunchingWithOptions s'appelle lorsque vous appuyez sur l'application selon le cycle de vie de l'application, d'autres délégués méthode ou fonction appelée en conséquence

Mais d'abord didFinishLaunchingWithOptions s'appelle alors il a déménagé à votre contrôleur de vue racine. Pour la vérification de l'authentification, enregistrez vos valeurs dans [NSUserDefaults standardUserDefaults], puis une fois l'enregistrement effectué, vous pouvez vérifier votre authentification dans didFinishLaunchingWithOptions.