はじめに
WebView関連の実装を行う際、検証環境のWebページを表示する時などにベーシック認証を行う必要があったりしますよね。
このベーシック認証を通す方法を簡単にまとめておこうと思います。
対応方法
認証を通す方法は非常にシンプルです。
binding.webView.apply {
webViewClient = object : WebViewClient() {
override fun onReceivedHttpAuthRequest(view: WebView, handler: HttpAuthHandler, host: String, realm: String) {
handler.proceed("認証ID", "認証パスワード")
}
}
}
WebViewClientはURLが読み込まれた際に呼ばれるshouldOverrideUrlLoadingなど、比較的使用頻度も多くご存知の方も多いと思います。
同クラスにonReceivedHttpAuthRequestという関数が用意されており、こちらが認証を必要とした際に呼ばれる関数となっているので、呼ばれた際に引数のhandlerに対してベーシック認証に必要なアカウントを設定してあげることで認証を通すことが可能となっています。
さいごに
WebViewも色々と闇が深いですが、WebViewClientなどWebViewに関する機能を一通り目を通しておくと幸せになれるタイミングがあるかもしれません。