webview オフライン対応(ネットワークイベント(接続/切断)に対する対応 -> 操作できないように view で覆う)
-
ネットワークイベント(接続/切断)のキャッチ
wifi/mobile(LTE)等の off/on(ネットワーク接続,切断)のイベントをキャッチする -
ネットワークイベント(接続/切断)に応じて webview の上に view を重ねてユーザが操作できないようにする - オフライン中のため操作禁止的な文言を表示する( view にラベルを置いて文字列 )
- ネットワーク状態を確認して、ネットワークイベントが発生しなくても操作可能にするためのボタン(UI)を置く(エマージェンシー機能)
- Xpoint3 のネットワーク読み込み中のプログレスバー表示が参考になる -> view を上に重ねる実装. viewModel経由
- val dataLoading = MutableLiveData().apply { value = false } の定義が viewModel にあって、この dataLoading を使って レイアウトの android:visibility をコントロールしている。
- networkDisconnect っMutableLiveData を作って、ネットワーク接続/切断で true/false をコントロールする。networkDisconnect で表示/非表示されるレイアウトを全面にかぶせられるようにする。。。感じ
【ネットワークイベント(接続/切断)のキャッチ】
【ネットワークイベントに応じてwebviewの上にviewを重ねてユーザが操作できないようにする】
<動作確認>
下記動作確認し、問題ないことを確認
- Wi-Fi接続/切断時、ネットワーク切断時の画面が非表示/表示切り替わること
- モバイルデータ接続/切断時、ネットワーク切断時の画面が非表示/表示切り替わること
- ネットワーク切断状態にてエマージェンシー機能を使用してもネットワーク切断時の画面のままであること








