2016-08-10 10 views
0

しかし、私はUIWebViewのloadRequestを呼び出すことによってUIWebViewでWebページを読み込んでいるため、実際には適用できません。UIWebViewでログインコンテンツを保存する方法

上のように私は、Webページでのログインコンテンツを保存することができますどのように任意のアイデアのUIWebViewのページでログイン情報コンテンツを保存するために再びアプリを起動、

このURLは、ログインコンテンツを保存します - http://aubonpain.mloyalconnect.com/microsite/

答えて

0

document.querySelectorAllすべてのテキストフィールドを使用するため( "入力[タイプ= 'パスワード']")

:document.querySelectorAll( "入力[タイプ= 'テキスト']")

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

NSString *userName = @"xyz"; 
NSString *password = @"abc"; 

if (userName.length != 0 && password.length != 0) { 


    NSString *jsPassword = [NSString stringWithFormat:@"document.querySelectorAll(\"input[type='password']\").value ='%@'", password]; 

    NSString *jsUsername = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \ 
          for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", userName]; 

    [self.mywebView stringByEvaluatingJavaScriptFromString: jsUsername]; 
    [self.mywebView stringByEvaluatingJavaScriptFromString: jsPassword]; 
} 

}

+0

戦車ManiaChamp このURL http://aubonpain.mloyalconnect.com/microsite/それが正しい答え –

+0

@SaurabhGuptaログイン保存ログインコンテンツを保存する: - http://aubonpain.mloyalconnect.com/microsite/ – ManiaChamp

+0

としてそれをマークしてください。このURLを働いていた場合、コンテンツに –

0

私は私のライブアプリのカップルで次のものを使用しています。あなたが応答を得る

保存クッキー:

- (void)saveCookiesToDefaults 
{ 
    NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]]; 
    [[NSUserDefaults standardUserDefaults] setObject:cookiesData forKey:@"SAVED_COOKIES"]; 
} 

負荷クッキー:セッションから

- (void)loadCookies 
{ 
    NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"SAVED_COOKIES"]]; 
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 

    for (NSHTTPCookie *cookie in cookies) 
    { 
     NSMutableDictionary *newProperties = [[NSMutableDictionary alloc]initWithDictionary:cookie.properties]; 
     NSDate *date = [newProperties objectForKey:NSHTTPCookieExpires]; 
     if(date == nil) 
      [newProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires]; 
     else 
      [newProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires]; 
     NSHTTPCookie *newCookie = [NSHTTPCookie cookieWithProperties:newProperties]; 
     [cookieStorage setCookie: newCookie]; 
     NSLog(@"%@",newCookie); 
    } 
} 

クリアクッキー:

- (void)clearCookies 
{ 
    for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) 
    { 
     [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
    } 

    [[NSURLCache sharedURLCache] removeAllCachedResponses]; 
    NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
    [NSURLCache setSharedURLCache:sharedCache]; 
    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"SAVED_COOKIES"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

チェックセッションがを存在する場合:

- (BOOL)hasExistingSession 
{ 
    NSData *savedCookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"SAVED_COOKIES"]; 
    if(savedCookiesData == nil) 
     return 0; 
    else 
    { 
     NSArray *savedCookies = [NSKeyedUnarchiver unarchiveObjectWithData:savedCookiesData]; 

     for (NSHTTPCookie *cookie in savedCookies) 
     { 
      [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; 
     } 

     NSLog(@"HAS EXISTING SESSION: %@", savedCookies.count ? @"YES" : @"NO"); 

     return savedCookies.count; 
    } 

} 
関連する問題