2012-01-24 2 views
7

URL : @ "http://www.gmail.com/"이있는 웹보기를 사용하는 응용 프로그램에서.이미 로그인 한 사용자와 함께로드 된 웹보기를 설정하는 방법 -iPhone

내가 메인 페이지/홈 페이지

(IBAction)webClick:(id)sender 
{ 
MailViewController *mail = [[MailViewController alloc]initWithNibName:@"MailViewController" bundle:nil]; 
[self.navigationController pushViewController:mail animated:YES]; 
} 
  • 에서 다음 웹보기가, 내가 메일보기에서이 얇은 같은 코드를 사용하여로드 된 버튼을 클릭하면이 웹보기가로드

    • :

      -(void)viewDidLoad 
      
      { 
          [super viewDidLoad]; 
          NSString *urlAddress = @"http://www.gmail.com/"; 
          NSURL *url = [NSURL URLWithString:urlAddress]; 
          NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
          [webView loadRequest:requestObj]; 
      } 
      

    다음은 Gmail은 로그인 페이지를 열었습니다. 우리는 사용자 이름 & 암호를 입력해야합니다.

    • 우리가 이미 Gmail의 응용 프로그램을 통해 내 계정에 로그인하면 내가이 원하는 것은

      ..

      는로드 뷰 대신 직접 로그인 페이지의 내 메일을 loades.

    • 내가 아직 로그인하지 않은 경우 로그인 한 다음 알림을 표시하십시오.

    어떻게 수행하나요?

    도와주세요. 미리 감사드립니다. 모든

  • 답변

    22

    첫째, 난 당신이있는 UIWebView 앱 실행 사이에 쿠키를 저장하지 않기 때문에,이 같은 것을 시도해야 정상의 Gmail 동작을받지 못하고있어, 당신이로드되어야하는 URL이보다 http://mail.google.com/mail

    다른 생각

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

    을하고이 사용하여 다시로드 : 그들을 저장

    - (void)loadCookies 
    { 
        NSArray    *cookies  = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"cookies"]]; 
        NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    
        for (NSHTTPCookie *cookie in cookies) 
        { 
         [cookieStorage setCookie: cookie]; 
        } 
    } 
    
    +0

    곳 부하 쿠키를 호출 ??? – sheetal

    +0

    @sheetal 앱 대리인 didFinishLoad에서로드하려고 시도합니다. 완벽하게 작동합니다. – Raj

    +0

    슈퍼 유용한 답변! – user2260054

    관련 문제