Как работать с базовой аутентификацией в WebView - PullRequest
13 голосов
/ 19 ноября 2010

Я создал приложение, которое загружает WebView. Для того, чтобы войти, веб-сайт требует базовой аутентификации. Когда я пытаюсь получить доступ к сайту через браузер по умолчанию я получаю всплывающее окно с предложением ввести имя пользователя и пароль.

Если я пытаюсь получить доступ к веб-сайту через приложение, я получаю сообщение об ошибке 401 и не выскакиваю. Мне было интересно, если кто-нибудь может мне помочь?

Ответы [ 3 ]

28 голосов
/ 21 января 2012

Я считаю, что более элегантное решение, чем то, которое описывает Патрик, заключалось бы в использовании onReceivedHttpAuthRequest метода WebViewClient, как описано здесь: http://www.mail-archive.com/android-developers@googlegroups.com/msg30468.html

@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
    handler.proceed("username", "password");
}
9 голосов
/ 19 ноября 2010

Веб-сайт требует аутентификации.

Сначала вы реагируете на ошибку:

webview.setWebViewClient(new WebViewClient() {
   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
     if (errorCode == 401) {
         // show alert to enter username and password
         // then when those are entered in the alert,
         //     set it through the setHttpAuthUsernamePassword(...) shown below
         //     and then reload the site
     }
   }
 });

Используйте эту функцию для установки пользователя и пароля: WebView.setHttpAuthUsernamePassword()

webview.setHttpAuthUsernamePassword(host, realm, username, password);

Все строки. См. Ссылку выше для получения дополнительной информации о том, что означает хост и область.

Решение найдено здесь: Предоставить некоторые базовые учетные данные для WebView?

8 голосов
/ 07 сентября 2014
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
     handler.proceed("USERNAME", "PASSWORD");
}

Я думаю, что это полезно при ошибке 401 в WebView.

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