ウィジェットからの起動時にログイン処理後に真っ白の画面になる
(不具合動作確認)
エミュレータにて不具合内容を確認、頻度は少ない
(原因)
現状、考えられる原因は下記2点
-
ポップアップが表示された画面を破棄しようとしている
- ログイン時になんらかのエラーがあり、
400エラーなどのポップアップが裏側で表示される
(表示画面は内部的にスタックに積まれる) - その状態で、ウィジェットからのログイン、書類一覧表示を繰り返し行う
(このときに古い画面はスタックから破棄されていく) - 画面が破棄される際にポップアップが表示されたままだと
Window Leakエラーが発生し、画面が真っ白の状態でwebviewの処理が止まる - 下記URL参考
https://teratail.com/questions/58682?sort=1
- ログイン時になんらかのエラーがあり、
-
ウィジェットからの起動時のログイン処理の際に、webview画面が内部的に固まることで画面が真っ白になり、処理が進まなくなってしまっている
(対応方針)
Androidアプリ側で対応可能な部分としては、
- ウィジェットからの起動時に、ダイアログが表示されたままであればダイアログを閉じて、書類一覧表示
- DocumentWebClient.ktにて、onJSAlertでwebviewからのAlertメッセージを取得(webview標準ではアラート表示しない)
- DocumentWebFragment.ktにて、新しくshowDialog()を作成、webviewから受け取ったメッセージをダイアログ表示
- 画面が閉じられた際(onDestroy())に、ダイアログが表示されていたら閉じる
- showDialogをDocumentWebPresenter.ktにて管理
- 対応後はエラー動作の様子を見ていく
(修正後動作確認)
- ダイアログ表示時にウィジェットから起動しても画面が真っ白にならない
- Leakエラーについても発生しないことを確認
sbc-atled-aw-devによってに編集されました