読者です 読者をやめる 読者になる 読者になる

WebViewClient

Android

WebViewClientを継承した派生クラスをつくることで、ロード時のさまざまな処理をカスタマイズできる・・・。

WebViewClient | Android Developers

レイアウトや文字リソースなどはそのままに、

f:id:BG1:20170109044521p:plain

Classを追加・・・。

f:id:BG1:20170109044535p:plain

WebViewClientをベースとしたCustomWebViewClientとする・・・。

CustomWebViewClient.javaは、

独自のコンストラクタには引数にContext型のcontextを取る・・・。
何かと必要になるので・・・。
そして、shouldOverrideUrlLoadingで今回は、falseを返すだけではなくて、その前にToastでurlを表示する・・・。
この時、contextが必要なのでコンストラクタでもらうようにした・・・。
ちなみに、このshouldOverrideUrlLoadingに処理が来るのは、リダイレクトでURLが変わった場合、またはWebページ内のリンクを開いたときなどである・・・。

MainActivity.javaでは、

CustomWebViewClientのコンストラクタにthisをセットして、customWCを生成・・・。
webView.setWebViewClientにcustomWCをセットしている・・・。

f:id:BG1:20170109045432p:plain

http://yahoo.co.jpをロードすると、

f:id:BG1:20170109045458p:plain

http://www.yahoo.co.jp/となり、

f:id:BG1:20170109045557p:plain

http://m.yahoo.co.jp/となっている・・・。

つまり、2回リダイレクトされているということである・・・。

Sample/android/WebViewClient/WebViewClient/src/WebViewClient at master · bg1bgst333/Sample · GitHub