WebView の Basic認証をダイアログ表示させるものの、入力情報が間違っていてもリトライしてくれない 認証エラーは onReceivedHttpError イベントの errorResponse.getStatusCode() == 401 を拾うことで捕捉可能ですが、ページを初めて開いた時も同じ401のイベントが発生するので注意が必要です 下記では authRun をダイアログ入力直後とするフラグを設けて onPageFinished や onReceivedError で解除を行っていますが、もっとスマートな方法は無いものだろうか... @Override @TargetApi(Build.VERSION_CODES.M) public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { super.onReceivedHttpError(view, request, errorResponse); if( request.isForMainFrame() && (errorResponse.getStatusCode() == 401) && authRun ){ authRun = false; view.reload(); } } 【追記】 上記コードは Android 6.0 (API 23) 以降用でで、それ以前は 同名のイベントが存在するものの... @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // < API 23 super.onReceivedError(view, errorCode, description, failingUrl); } これが全く使えないイベントで 401時に呼ばれるはするものの errorCode に -1 ...