【Kotlin/Android】WebViewでJavaScriptのポップアップが表示されない原因と対応方法

この記事からわかること
- Kotlin/Android StudioでWebViewの使い方
- JavaScriptのwindow.alert()/window.confirm()が表示されない原因
\ アプリをリリースしました /
環境
- Android Studio:Koala
- Kotlin:1.9.0
WebViewでJavaScriptのポップアップが表示されない原因
AndroidアプリからWebViewでWebページを表示している際にJavaScriptで実装していたalert
とconfirm
が表示されない事象が発生しました。調べてみるとWKWebView
ではデフォルトではポップアップ表示に対応していないようです。
⇧上記でポップアップ出るのでWebViewで開いて確認してみてください。
ポップアップを表示させる方法
WebView
でポップアップを表示させるにはWebChromeClient
のonJsAlert
とonJsConfirm
メソッドを活用します。
この2つのメソッドではJavaScriptで実装したalert
とconfirm
をネイティブ側のアラートへ繋ぎこむことができるようになります。confirm
で押下した後の処理もJsResult
のconfirm
またはcancel
メソッドを呼び出すことでJavaScript側の押下後の実装を問題なく動作させることが可能になっています。
JavaScriptを有効にするのとWebChromeClient
のセットを忘れないように。
これで無事WebViewからポップアップが表示されるようになりました。

iOSのWebViewでも同じです
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。