UIWebView, введите пароль - PullRequest
       3

UIWebView, введите пароль

1 голос
/ 30 апреля 2011

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

Любая помощь?

Ответы [ 2 ]

2 голосов
/ 30 апреля 2011

Если вы используете UIWebView, я предполагаю, что вы загружаете какой-то веб-сервис в этот WebView. Почему бы не встроить свою систему входа в веб-сервис? Вы даже можете просто использовать HTTP Basic Auth.

Если вы управляете паролями в своем приложении какао, то я, вероятно, реализовал бы UIAlertView с UITextField, запрашивающим пароль. Когда пользователь нажимает на кнопку «Войти», вы можете подтвердить пароль, а затем загрузить свой веб-сервис в UIWebView.

Если вы управляете паролями в базе данных на веб-сайте, вы должны создать форму входа html / js / php / mysql и сначала загрузить ее в UIWebView.

Обновление

Я бы выбрал первый вариант и отобразил вашу собственную форму входа в систему, используя элементы управления какао, такие как UIAlertView с 2 UITextFields. Затем вы можете сохранить имя пользователя и пароль, используя службы цепочки для ключей, и отправлять их каждый раз, когда пользователи запускают приложение или веб-сеанс истекает.

Если вы хотите попробовать этот метод, я бы посоветовал взглянуть на ASIHTTPRequest framework. В частности, ASIFormDataRequest, который позволяет легко отправлять форму с правильными полями.

- (void)login
{
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    // Change these values to the ones in NSUserDefaults and the KeyChain
    [request setPostValue:@"Joe" forKey:@"username"];
    [request setPostValue:@"Secret" forKey:@"password"];

    [request setDelegate:self];
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
    // Use when fetching text data
    NSString *responseString = [request responseString];

    // Use when fetching binary data.
    NSData *responseData = [request responseData];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
}
1 голос
/ 30 апреля 2011

Просто идея: вы можете попробовать добавить некоторый javascript на страницу перед отображением в веб-просмотре и использовать событие ONLOAD, чтобы заполнить поле пароля и опубликовать форму.

Для этого у вас есть 2 решения:

  • Используйте метод экземпляра stringByEvaluatingJavaScriptFromString из UIWebView , вы можете оценить свой javascript в методе делегата webViewDidFinishLoad, например. Вы найдете пример здесь: http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview

  • Или, если по какой-то причине вы не можете использовать это решение в своем контексте, вы всегда можете загрузить HTML, используя NSURLConnection, а затем отредактировать строку, чтобы вставить свой javascript. Затем загрузите WebView, используя loadHTMLString: baseURL:

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