Автозаполнение и отправка HTML-формы и просмотра в UIWebView iOS - PullRequest
2 голосов
/ 19 сентября 2011

Я пытаюсь автоматически заполнить и отправить HTML-форму на iPhone и iPad, но затем просмотреть полученную страницу в UIWebView.

Пример. Существует веб-сайт для добавления денег в план питания для моего университета, и он требует, чтобы вы сначала указали номер своего студента, нажмите «Отправить», введите свой пароль, нажмите «Отправить», а затем отобразит ваш баланс после этого.

Я пытаюсь создать приложение, которое позволит вам сохранить в нем информацию, нажать GO, а затем в фоновом режиме заполнить сохраненный номер учащегося, нажать «Отправить», дождаться загрузки полученной страницы и ввести пароль, нажмите «отправить», затем, наконец, отобразите полученную страницу с балансом.

Я несколько раз пытался отправить формы, но не могу их отобразить в UIWebView после.

У кого-нибудь есть идеи или решения?

Ценю всю помощь! Извините, если это глупый вопрос.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2014

Для тех, кому нужен код, я надеюсь, что 3 метода могут помочь:

Этот метод заполнит поле имени пользователя:

- (void)completeUserFieldsForWebView:(UIWebView *)webView withUsername:(NSString *)username {

    NSString *loadUsernameJS =
    [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='email']\"); \
     for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", username];
    NSString *loadText =
    [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \
     for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", username];
    [webView stringByEvaluatingJavaScriptFromString: loadUsernameJS];
    [webView stringByEvaluatingJavaScriptFromString: loadText];

}

Это заполнит поле пароля:

- (void)completePasswordFieldsForWebView:(UIWebView *)webView withPassword:(NSString *)password {

    NSString *loadPasswordJS =
    [NSString stringWithFormat:@"var passFields = document.querySelectorAll(\"input[type='password']\"); \
     for (var i = passFields.length>>> 0; i--;) { passFields[i].value ='%@';}", password];
    [webView stringByEvaluatingJavaScriptFromString: loadPasswordJS];

}

Чтобы отправить свои формы:

- (void)clickOnSubmitButtonForWebView:(UIWebView *)webView {

    NSString *performSubmitJS = @"var passFields = document.querySelectorAll(\"input[type='submit']\"); \
    passFields[0].click()";
    [webView stringByEvaluatingJavaScriptFromString:performSubmitJS];

} 
2 голосов
/ 19 сентября 2011

Вы можете сделать это с помощью JavaScript.Используйте метод -stringByEvaluatingJavaScriptFromString: UIWebView для ввода текста и нажмите кнопку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...