onReceivedSslErrorは、SSLエラーが発生した時のハンドラ・・・。
WebViewClient | Android Developers
SSLエラーは普通のエラーと違って、こちらに来るらしい・・・。
CustomWebViewClient.javaで、
// エラーが発生した時. @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){ // エラーコードと説明の表示. Toast.makeText(context, Integer.toString(errorCode) + ":" + description, Toast.LENGTH_LONG).show(); // ToastでerrorCodeとdescriptionを表示. }
onReceivedErrorはToastだけにした・・・。
error.htmlもいらないので削除・・・。
で、
// SSLエラーが発生した時. @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){ // SSLエラーのエラーメッセージを表示. Toast.makeText(context, "SSL Error!", Toast.LENGTH_LONG).show(); // Toastで"SSL Error!"を表示. }
onReceivedSslErrorに来たときは、トーストで"SSL Error!"と表示するようにした・・・。
で、これのテストのために、
オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている
まずは普通にアクセス・・・。
表示できる・・・。
0を消してロードしてみると、
前回の様にloadUrlしなければこうなる・・・。
0をつけて、httpsにしてロードすると、
"SSL Error!"が出るのはいいのだが、ロードが止まってしまって動かない・・・。(ように見えるのかもしれないけど・・・。)
なので、
親クラスに任せるようにすると、
ロードが完了する・・・。
で、結局エラーページが表示されているのだが、この辺は端末で違う・・・。(真っ白になる場合もある・・・。)