Intereting Posts
Как я могу узнать, сколько памяти мое приложение использует из своего бюджета VM? Проект Android Studio Gradle «Невозможно запустить процесс / инициализацию виртуальной машины» Android 7 Native Crash: libc.so tgkill String whereArgs параметр метода базы данных в android Использование FloatMath или Math и литье? Поздний рендеринг веб-браузера Android Как автоматически определить необходимость iScroll? Невозможно выполнить dex: несколько файлов dex определяют массив Lcom / myapp / R $; Не удалось завершить сеанс установки … Подписи несовместимы – Android Почтовый запрос Volley JsonObjectRequest не работает OnLocationChanged () никогда не вызывал Android: вопрос о растровых изображениях, использовании памяти и масштабировании Писать и читать строки в / из внутреннего файла API Карт Google v2: как сделать маркеры доступными для кликов? Android – Как я могу просмотреть базу данных sql, созданную в моем приложении? Я запускаю его на эмуляторе Android в Eclipse

Как обрабатывать базовую аутентификацию в WebView

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

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

Solutions Collecting From Web of "Как обрабатывать базовую аутентификацию в WebView"

Я считаю более элегантным решением, чем тот, который описывает Патрик, – использовать метод 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"); } 

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

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

 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?

 public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { handler.proceed("USERNAME", "PASSWORD"); } 

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