2012-01-24 23 views
7

Trong iam ứng dụng của tôi bằng cách sử dụng chế độ xem web có URL: @ "http://www.gmail.com/".Cách đặt chế độ xem web của tôi được tải với người dùng đã đăng nhập -iPhone

  • xem web này đã được nạp khi tôi nhấp vào một nút trong chính trang/home

    (IBAction)webClick:(id)sender 
    { 
    MailViewController *mail = [[MailViewController alloc]initWithNibName:@"MailViewController" bundle:nil]; 
    [self.navigationController pushViewController:mail animated:YES]; 
    } 
    
  • Sau đó, xem web đã được nạp, tôi đã sử dụng mã như mỏng này theo quan điểm của mail:

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

Tại đây gmail được mở bằng trang đăng nhập. chúng tôi cần nhập tên người dùng & mật khẩu.

gì tôi muốn là,

  • nếu chúng ta đã đăng nhập vào tài khoản của mình thông qua ứng dụng gmail ..

    Quan điểm nạp trực tiếp LOADES mail của tôi, thay vì trang đăng nhập.

  • nếu tôi chưa đăng nhập, sau đó hiển thị cảnh báo khi bạn đăng nhập.

Làm cách nào để thực hiện?

Hãy giúp tôi. Cảm ơn trước.

Trả lời

22

Trước hết, tôi nghĩ các URL mà bạn nên tải là http://mail.google.com/mail

Ngoài ra, bạn không nhận được hành vi gmail bình thường vì UIWebView không lưu cookie giữa ứng dụng chạy, bạn nên thử một cái gì đó như thế này để cứu họ:

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

và tải chúng lại sử dụng này:

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

    for (NSHTTPCookie *cookie in cookies) 
    { 
     [cookieStorage setCookie: cookie]; 
    } 
} 
+0

nơi để gọi cookie tải ??? – sheetal

+0

@sheetal cố gắng tải từ ứng dụng đại biểu didFinishLoad, công việc của nó hoàn hảo cho tôi – Raj

+0

Câu trả lời hữu ích! – user2260054

Các vấn đề liên quan