Могу ли я использовать информацию об имени пользователя и пароле из UITextFields для автоматического входа на веб-сайт в UIWebView? - PullRequest
1 голос
/ 11 октября 2011

Я сейчас пытаюсь найти решение этой задачи.По сути, у меня есть первоначальный UIView, который запрашивает у пользователя имя пользователя и пароль для определенного сайта, эта информация затем перейдет к следующему представлению, внутри которого есть UIWebView.Я хотел бы знать, возможно ли автоматически заполнить имя пользователя и пароль на сайте и отправить пользователя непосредственно на страницу его учетной записи на сайте.

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 октября 2011

при условии, что на вашем сайте есть теги div, которые вы можете добавить с помощью stringByEvaluatingJavsScriptFromString.

В этом примере имя пользователя вводится на странице регистрации в Twitter.Вы можете проверить это, загрузив это в свой viewDidLoad:

NSString *urlString = @"https://mobile.twitter.com/signup";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

, а затем в webViewDidFinishLoad введите имя пользователя:

- (void)webViewDidFinishLoad:(UIWebView *)webView;
{
[webView stringByEvaluatingJavaScriptFromString:@"var field = document.getElementById('oauth_signup_client_fullname');"  
 "field.value='yourUserName';"];  
}

извините, только что понял, что у вас уже есть решение, но отсутствуетреализация.Надеюсь, что это поможет.

Кстати, чтобы добавить динамическую переменную в использование встроенного JavaScript:

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

    NSString *injectedVariable = @"userNameHere";

    NSString *injectedString = [NSString stringWithFormat:@"var field = document.getElementById('oauth_signup_client_fullname'); field.value='%@';", injectedVariable];

[webView stringByEvaluatingJavaScriptFromString:injectedString];  
}
1 голос
/ 11 октября 2011

решение состоит в том, чтобы «подделать» запрос на вход в систему, используя имя пользователя и пароль, и ввести его в веб-представление. То есть у вас есть страница index.php с полем имени пользователя и пароля.

если вы их заполните, страница login.php вызывается с этими параметрами.

вы могли бы построить

NSString *urlString = @”http://www.yoursite.com/login.php?username=user&password=pass”;
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

}

что должно сработать

...