首页 文章

如何使用已登录用户-iPhone设置我的Web视图

提问于
浏览
7

在我的应用程序中使用带URL的Web视图:@“http://www.gmail.com/” .

  • 当我点击主页/主页中的按钮时,加载了此Web视图
(IBAction)webClick:(id)sender
 {
MailViewController *mail = [[MailViewController alloc]initWithNibName:@"MailViewController" bundle:nil];
[self.navigationController pushViewController:mail animated:YES];
}
  • 然后加载了Web视图,我在邮件视图中使用了像thin这样的代码:
-(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应用程序登录我的帐户..

加载的视图直接挂载我的邮件,而不是登录页面 .

  • 如果我还没有进入,请在登录时显示提醒 .

怎么做?

请帮我 . 提前致谢 .

1 回答

  • 22

    首先,我认为你应该加载的URL是 http://mail.google.com/mail

    除此之外,你没有获得正常的gmail行为,因为UIWebView不会在应用程序运行之间保存cookie,你应该尝试这样的东西来保存它们:

    - (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];
        }
    }
    

相关问题