0

パスワードで保護されたサイトを開くために WebView を使用する必要がある Android アプリケーションの一部を開発しています。ユーザーが初めてアプリにログインしたときから、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");

では、これが私を認証しない理由を知っている人はいますか? "" を入れたレルム文字列は、実際には何かである必要がありますか?

4

3 に答える 3

1

これを使用できます:

webview.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedHttpAuthRequest(WebView view,
        HttpAuthHandler handler, String host, String realm) {
            handler.proceed("username", "password");
    }
});
于 2016-06-03T12:39:18.873 に答える
0

Android は現在、NTLM をサポートしていると主張しています。WebViewそれがブラウザの一部なのか、単なるブラウザなのかはわかりません。

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

于 2013-12-09T19:44:30.760 に答える
0

サイトが NTLM 認証を使用している場合、機能しません。Android は NTLM 認証をネイティブにサポートしていません。Fennec (firefox mobile) は、これをサポートしている唯一の Android ブラウザですが、まだアルファ版です。

于 2010-06-28T18:25:22.293 に答える