WebView.setHttpAuthUsernamePassword () не работает? - PullRequest
0 голосов
/ 28 июня 2010

Я занимаюсь разработкой части приложения для Android, которому необходимо использовать WebView для открытия защищенного паролем сайта.Я использую SharedPreferences для предоставления имени пользователя и пароля, когда пользователь впервые входит в приложение.Я проверил учетные данные, которые он возвращает, поэтому я знаю, что они верны.Когда я запускаю это в эмуляторе, сайт говорит, что я не авторизован (хотя я и есть).Вот код:

  setContentView(R.layout.browser);
  WebView browser = (WebView) findViewById(R.id.browser);
  browser.getSettings().setJavaScriptEnabled(true);
  SharedPreferences credentials = getSharedPreferences("credentials", 0);
  browser.setHttpAuthUsernamePassword("example.com", "", credentials.getString("username", ""), credentials.getString("password", ""));
  browser.loadUrl("http://example.com");

Так кто-нибудь знает, почему это не будет аутентифицировать меня?Должна ли строка царства, для которой я ставлю "", быть чем-то?

Ответы [ 3 ]

1 голос
/ 03 июня 2016

Вы можете использовать это:

webview.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedHttpAuthRequest(WebView view,
        HttpAuthHandler handler, String host, String realm) {
            handler.proceed("username", "password");
    }
});
0 голосов
/ 09 декабря 2013

Android заявляет о поддержке NTLM сейчас.Я не знаю, является ли это частью WebView или просто браузером.

https://code.google.com/p/android/issues/detail?id=4962

0 голосов
/ 28 июня 2010

, если сайт использует NTLM-аутентификацию, он не будет работать. Android изначально не поддерживает NTLM Auth. Fennec (Firefox Mobile) - единственный браузер для Android, который я видел, который поддерживает его, но все еще в альфа-версии.

...