类返回等待UIWebView

时间:2014-03-24 16:40:08

标签: ios class uiwebview

我正在开发一个应用程序,用于从我的学校网站获取数据到桌面视图,但要做到这一点,应用程序需要登录。

我一直在尝试通过将数据作为POST发送到登录表单来制作正确的登录系统,但由于某种原因,它不会工作(我之前已经为另一个网站做过,所以它不是因为我不知道如何)

所以现在我只有一个隐藏的uiwebview与loginform并填充用户添加到两个uitextfields ..

但不是将隐藏的uiwebview添加到每个viewcontroller(每当我需要再次登录以获取数据时,如果网站上的会话过期),我真的只想创建一个类来做这个...

我正在考虑类似的事情:

class.h

 +(BOOL)loginWithUsername(NSString*)username : password(NSString*)password;

class.m

+(BOOL)loginWithUsername(NSString*)username : password(NSString*)password {
 //create webview
 //populate form on site
 // press submitbutton
 //wait for - (void)webViewDidFinishLoad:(UIWebView *)webView to finish, where it analyzes if the user was logged in, and if so return true
}

但是如何做呢?

1 个答案:

答案 0 :(得分:0)

更好的是使用完成块创建方法

阻止的typedef,不是必需的,但非常有帮助

typedef void(^CompletionHandler)(BOOL success);

在此方法中将完成处理程序保存到本地ivar,如CompletionHandler _handler;

+(BOOL)loginWithUsername(NSString*)username : password(NSString*)password complete:(CompletionHandler)handler;
webViewDidFinishLoad中的

使用

检查登录成功结束校准块
if (handler)
{
      handler(YES); // or no if login failed
}

在花药控制器中,您可以将其称为

[LoginClass loginWithUsername:@"user" password:@"pass" complete:^(bool success){
     if (success) 
     {
       // logged in 
     }
}];